2.4路由日志管理
2.4路由/日志管理
一、静态路由和动态路由
路由器在转发数据时,需要现在路由表中查找相应的路由,有三种途径
(1)直连路由:路由器自动添加和自己直连的路由 (2)静态路由:管理员手动添加的路由 (3)动态路由:由路由协议动态建立的路由
静态路由
缺点 不能动态的反映网络拓扑,当网络发生变化的时候,管理员必须 手动的改变路由 优点 不会占用路由器太多的cpu和RAM资源,也不会占用太多带宽。 如果出于安全的考虑想隐藏网咯的某些部分或者管理员想控制数据转 发路径也可以使用静态路由,小网络也可以配置静态路由 因为便捷
默认路由
(1) 实际上默认路由是一种特殊的静态路由,指的是当 路由表中与包的 目的地址之间没有匹配的表项时,路由器能够做出选择。如果没有默 认路由,那么目的地址在路由表中没有匹配表项的包将被丢弃。 (2)默认路由(Default route),如果IP数据包中的目的地址找不到存在 的其它路由时,路由器会默认的选择的路由。 默认路由为0.0.0.0 匹配IP地址时,0表示wildcard,任何值都是可以的,所有0.0.0.0.和任 何目的地址匹配都会成功,造成默认路由要求的效果。就是说0可以匹 配任何的IP地址。
动态路由
动态路由是与静态路由相对的一个概念,指路由器能够根据路由器之 间的交换的特定路由信息自动地建立自己的路由表,并且能够根据链 路和节点的变化适时地进行自动调整。当网络中节点或节点间的链路 发生故障,或存在其它可用路由时,动态路由可以自行选择最佳的可 用路由并继续转发报文。
二、Linux路由操作
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.120.2 0.0.0.0 UG 100 0 0 ens33
192.168.120.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33Destination 目标网络或目标主机
Gateway 网关
Genmask 网络掩码
Flags 定义的标记Metric 路由的距离Ref 路由的中转次数Use 此路由向查找的次数Iface 设备名称ip方式(rhel7)
查看路由表
[root@localhost ~]# ip r
default via 10.18.44.1 dev enp0s25
10.18.40.100 via 10.18.44.1 dev enp0s25 proto dhcp metric 100
10.18.44.0/24 dev enp0s25 proto kernel scope link src 10.18.44.196 metric
100
10.18.45.0/24 via 10.18.44.1 dev enp0s25
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1删除默认网关
[root@localhost ~]#ip r d default删除静态路由:
[root@localhost ~]#ip r del 10.18.45.0/24添加默认网关:
[root@localhost ~]# ip r add default via 10.18.44.1 dev enp0s25添加静态路由:
[root@localhost ~]# ip r add 10.18.45.0/24 via 10.18.44.1 dev enp0s25
三、实战
1、添加默认路由
2、Linux服务器配置静态路由并测试
四、端口和服务解析
1、网络端口
在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器
的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口
等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP
协议中的端口,是逻辑意义上的端口。
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房
子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之
多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到
65535(2^16-1)。
在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据
包根据其目的主机的ip地址来进行互联网络中的路由选择,把数据包顺
利的传送到目的主机。大多数操作系统都支持多程序(进程)同时运
行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程
中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进 来。 本地操作系统会给那些有需求的进程分配协议端口(protocol port,即 我们常说的端口),每个协议端口由一个正整数标识,如:80,139, 445,等等。当目的主机接收到数据包后,将根据报文首部的目的端口 号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取 数据并等待下一组数据的到来。说到这里,端口的概念似乎仍然抽 象,那么继续跟我来,别走开。 端口其实就是队,操作系统为各个进程分配了不同的队,数据包按照 目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下, 这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己 的队的大小。 不光接受数据包的进程需要开启它自己的端口,发送数据包的进程也 需要开启端口,这样,数据包中将会标识有源端口,以便接受方能顺 利地回传数据包到这个端口。
2、常见服务管理操作
列出所有启动的units
[root@localhost ~]#systemctl list-units列出所有的启动文件
[root@localhost ~]#systemctl list-unit-files启动服务httpd
[root@localhost ~]#systemctl start httpd查看服务的状态
[root@localhost ~]#systemctl status httpd
[root@localhost ~]#systemctl status httpd -l关闭
[root@localhost ~]#systemctl stop httpd先关闭在重启
[root@localhost ~]#systemctl restart httpd重新加载配置文件
[root@localhost ~]#systemctl reload httpd设置开机启动
[root@localhost ~]#systemctl enable httpd设置开机关闭
[root@localhost ~]#systemctl disable httpd
五、日志
1、日志重要性
Linux系统日志对管理员来说,是了解系统运行的主要途径,因此需要 对 Linux 日志系统有个详细的了解。 Linux 系统内核和许多程序会产生各种错误信息、告警信息和其他的提 示信息,这些各种信息都应该记录到日志文件中,完成这个过程的程 序就是 rsyslog,rsyslog 可以根据日志的类别和优先级将日志保存到不 同的文件中。
2、常见系统日志
/var/log/message:记录Linux操作系统常见的系统和服务错误信息 登录安装删除等/var/log/boot.log:录了系统在引导过程中发生的事件,就是Linux系统开机自
检过程显示的信息/var/log/lastlog :记录最后一次用户成功登陆的时间、登陆IP等信息(一般通
过命令 lastlog 查看)/var/log/secure :Linux系统安全日志,记录用户和工作组变坏情况、用户登
陆认证情况 用户登录失败 成功 建用户的日志/var/log/btmp :记录Linux登陆失败的用户、时间以及远程IP地址/var/log/wtmp:该日志文件永久记录每个用户登录、注销及系统的启动、停
机的事件,使用last命令查看
/var/log/message:记录Linux操作系统常见的系统和服务错误信息
[root@localhost ~]# tailf /var/log/messages
Nov 17 16:35:22 localhost NetworkManager[687]: <info> [1700210122.0512] dhcp4 (ens33): domain name 'localdomain'
Nov 17 16:35:22 localhost NetworkManager[687]: <info> [1700210122.0512] dhcp4 (ens33): state changed bound -> bound
Nov 17 16:35:22 localhost dbus[650]: [system] Activating via systemd: service name='org.freedesktop.nm_dispatcher' unit='dbus-org.freedesktop.nm-dispatcher.service'
Nov 17 16:35:22 localhost systemd: Starting Network Manager Script Dispatcher Service...
Nov 17 16:35:22 localhost dhclient[22705]: bound to 192.168.120.132 -- renewal in 710 seconds.
Nov 17 16:35:22 localhost dbus[650]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'
Nov 17 16:35:22 localhost systemd: Started Network Manager Script Dispatcher Service.
Nov 17 16:35:22 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: new request (3 scripts)
Nov 17 16:35:22 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: start running ordered scripts...
Nov 17 16:38:08 localhost auditd[627]: Audit daemon rotating log files
[root@localhost ~]# yum -y install nginx
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
没有可用软件包 nginx。
错误:无须任何处理
[root@localhost ~]# yum -y install epel-release
[root@localhost ~]# yum -y install nginx
[root@localhost ~]# yum -y remove httpd[root@localhost ~]# id apache
uid=48(apache) gid=48(apache) 组=48(apache)[root@localhost ~]# userdel -r apache
userdel: apache 邮件池 (/var/spool/mail/apache) 未找到
userdel:未找到 apache 的主目录“/usr/share/httpd”[root@localhost ~]# id apache
id: apache: no such user[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# lsof -i:80[root@localhost ~]# systemctl restart httpd会包这个错 我的刚才的用户应该是没有删除
Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.[root@localhost ~]# tailf /var/l
lib/ local/ lock/ log/
[root@localhost ~]# tailf /var/log/messages
Nov 17 16:47:12 localhost systemd: Started Network Manager Script Dispatcher Service.
Nov 17 16:47:12 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: new request (3 scripts)
Nov 17 16:47:12 localhost nm-dispatcher: req:1 'dhcp4-change' [ens33]: start running ordered scripts...
Nov 17 16:49:21 localhost yum[79649]: Erased: httpd-2.4.6-99.el7.centos.1.x86_64
Nov 17 16:49:21 localhost systemd: Reloading.
Nov 17 16:52:33 localhost systemd: Reloading.
Nov 17 16:52:33 localhost yum[82550]: Installed: httpd-2.4.6-99.el7.centos.1.x86_64
Nov 17 16:54:24 localhost systemd: Starting The Apache HTTP Server...
Nov 17 16:54:24 localhost httpd: AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
Nov 17 16:54:24 localhost systemd: Started The Apache HTTP Server.[root@localhost ~]# useradd apache
useradd:用户“apache”已存在
进去删除之前的就可以了
[root@localhost ~]# vi /etc/group[root@localhost ~]# lsattr /etc/passwd
---------------- /etc/passwd
[root@localhost ~]# chattr -i /etc/passwd
[root@localhost ~]# useradd apache
useradd:用户“apache”已存在
3、rsyslog日志管理
3.1、日志类型
auth pam 产生的日志 authpriv ssh,ftp 等登录信息的验证信息 cron 时间任务相关 kern 内核 lpr 打印 mail 邮件 mark(syslog)-rsyslog 服务内部的信息,时间标识 news 新闻组 user 用户程序产生的相关信息
3.2、日志优先级
日志级别分为:7种日志级别代号0-7 0 debug 有调试信息的,日志信息最多 1 info 一般信息的日志,最常用 2 notice 最具有重要性的普通条件的信息 3 warning 警告级别 4 err 错误级别,阻止某个功能或者模块不能正常工作的信息 5 crit 严重级别,阻止整个系统或者整个软件不能工作的信息6 alert 需要立刻修改的信息7 emerg 内核崩溃等严重信息none 什么都不记录
3.3、自定义日志
[root@localhost ~]#vim /etc/rsyslog.conf
日志对象(设备):你要对什么东东做日志
日志级别:级别越低,信息越多
日志文件:存储日志的文件
日志对象.日志级别 日志文件
. 大于或者等于后面指定的日志级别
.= 等于后面指定的日志级别
.! 非
例:
*.* /var/log/mylog
kern.err /var/log/kernel.log
*.info;mail.none /var/log/big.log
mail.info /var/log/mail.log
cron.info;cron.!err /var/log/newcron
cron.info /var/log/newcron
重启日志服务:
[root@localhost ~]#systemctl restart rsyslog清空文件内容
[root@localhost ~]# > /var/log/rsyslog
4、logrotate日志轮转
4.1、日志轮转
[root@localhost ~]#vim /etc/logrotate.conf
//全局配置
weekly 轮转周期 默认一周轮转一次
rotate 4 轮转次数 默认轮转4次
create 创建新文件
dateext 以轮转时刻的时间作为轮转文件的结尾
//局部配置
include /etc/logrotate.d
missingok 在文件不存在的时候也不报错
create 0644 root utmp强制轮转:
[root@localhost ~]# logrotate -s /var/lib/logrotate/logrotate.status
/etc/logrotate.conf
-s 指定最后的日志轮转记录文件为/var/lib/logrotate/logrotate.status
4.2、日志轮转实例
1:测试日志轮转,轮转文件/var/log/yum.log
[root@localhost ~]#vim /etc/logrotate.d/yum
/var/log/yum.log {
missingok
# notifempty
# size 30k
# yearly
daily
rotate 3
create 0777 root root
}
测试:
[root@localhost ~]#logrotate /etc/logrotate.conf //手动轮转
[root@localhost ~]#ls /var/log/yum*
/var/log/yum.log /var/log/yum.log-20170331
[root@localhost ~]#grep 'yum' /var/lib/logrotate/logrotate.status //记录
所有日志文件最近轮转的时间
"/var/log/yum.log" 2017-3-31-10:0:23
[root@localhost ~]#date 09011000
[root@localhost ~]#logrotate -s /var/lib/logrotate/logrotate.status
/etc/logrotate.conf2:日志安全,操作日志的隐藏权限
/etc/logrotate.d/messages
建议测试时先把/etc/logrotate.d/syslog中messages删除
/var/log/messages {
prerotate
chattr -a /var/log/messages
endscript
#notifempty
daily
create 0600 root root
missingok
rotate 5
postrotate
chattr +a /var/log/messages
endscript
}3:为多个日志文件配置日志轮转
[root@qfedu.com ~]#vim /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/secure
/var/log/spooler
{
missingok
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
endscript
}
实验
[root@localhost ~]# vi /etc/logrotate.d/yum
/var/log/yum.log {missingoknotifemptymaxsize 30kyearlycreate 0600 root root
}[root@localhost ~]# cat /etc/logrotate.d/yum
/var/log/yum.log {missingok# notifempty# maxsize 30k# yearlydailyrotate 3create 0777 root root
}
[root@localhost ~]# ls /var/log/yum.*
/var/log/yum.log[root@localhost ~]# date
2023年 11月 17日 星期五 17:16:33 CST
[root@localhost ~]# date 11181716
2023年 11月 18日 星期六 17:16:00 CST
[root@localhost ~]# logrotate /etc/logrotate.conf
[root@localhost ~]# ls /var/log/yum.*
/var/log/yum.log /var/log/yum.log-20231118在执行
[root@localhost ~]# logrotate /etc/logrotate.conf
[root@localhost ~]# ls /var/log/yum.*
/var/log/yum.log /var/log/yum.log-20231118
4.3、日志轮转中重启服务的重要性
日志轮转配置文件中重启服务的脚本 是为了把新的日志内容写入到新 的日志文件里 因为旧的日志文件被轮转只是改了个名字,INODE并没 有变,但是日志程序是按日志文件的 inode号识别文件的,所以需要重 启日志以改变日志文件为新的文件
六、实战
1、使用rsyslog自定义日志
2、使用Logrotate对日志进行日志轮转
相关文章:
2.4路由日志管理
2.4路由/日志管理 一、静态路由和动态路由 路由器在转发数据时,需要现在路由表中查找相应的路由,有三种途径 (1)直连路由:路由器自动添加和自己直连的路由 (2)静态路由:管理员手动…...
归并排序详解:递归实现+非递归实现(图文详解+代码)
文章目录 归并排序1.递归实现2.非递归实现3.海量数据的排序问题 归并排序 时间复杂度:O ( N * logzN ) 每一层都是N,有log2N层空间复杂度:O(N),每个区间都会申请内存,最后申请的数组大小和array大小相同稳定…...
DataBinding原理
1、MainActivity首先使用DataBindingUtil.setContentView设置布局文件activity_main.xml。 2、随后,经过一系列函数调用,ActivityMainBindingImpl对象最终会实例化,并与activity_main.xml进行绑定。 3、实例化后的ActivityMainBindingImpl对象…...
docker更换国内源
docker更换国内源 1、编辑Docker配置文件 在终端中执行以下命令,编辑Docker配置文件: vi /etc/docker/daemon.json2、添加更新源 在打开的配置文件中,添加以下内容: {"registry-mirrors": ["https://hub-mirror…...
【咖啡品牌分析】Google Maps数据采集咖啡市场数据分析区域分析热度分布分析数据抓取瑞幸星巴克
引言 咖啡作为一种受欢迎的饮品,已经成为我们生活中不可或缺的一部分。随着国内外咖啡品牌的涌入,新加坡咖啡市场愈加多元化和竞争激烈。 本文对新加坡咖啡市场进行了全面的品牌门店数占比分析,聚焦于热门品牌的地理分布、投资价值等。通过…...
【Java】异常处理(一)
🌺个人主页:Dawn黎明开始 🎀系列专栏:Java ⭐每日一句:什么都不做,才会来不及 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️ 文章目录 📋前…...
【高级程序设计】Week2-4Week3-1 JavaScript
一、Javascript 1. What is JS 定义A scripting language used for client-side web development.作用 an implementation of the ECMAScript standard defines the syntax/characteristics of the language and a basic set of commonly used objects such as Number, Date …...
PHP笔记-->读取JSON数据以及获取读取到的JSON里边的数据
由于我以前是写C#的,现在学一下PHP, 在读取json数据的时候被以前的思维卡住了。 以前用C#读取的时候,是先定义一个数组,将反序列化的json存到数组里面,在从数组里面获取jaon中的“data”数据。 其实PHP的思路也是一样…...
【Spring Boot】如何集成Redis
在pom.xml文件中导入spring data redis的maven坐标。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency> 在application.yml文件中加入redis相关配置。 spr…...
Elasticsearch备份与还原:使用elasticdump
在数据管理的世界里,备份和还原数据是重中之重的日常工作,特别是对于Elasticsearch这样的强大而复杂的搜索引擎。备份不仅可以用于灾难恢复,还可以在数据迁移、测试或者升级等场景中发挥重要作用。 在本博客中,我们将会重点介绍如…...
给大伙讲个笑话:阿里云服务器开了安全组防火墙还是无法访问到服务
铺垫: 某天我在阿里云上买了一个服务器,买完我就通过MobaXterm进行了ssh(这个软件是会保存登录信息的) 故事开始: 过了n天之后我想用这个服务器来部署流媒体服务,咔咔两下就部署好了流媒体服务器&#x…...
js:react使用zustand实现状态管理
文档 https://www.npmjs.com/package/zustandhttps://github.com/pmndrs/zustandhttps://docs.pmnd.rs/zustand/getting-started/introduction 安装 npm install zustand示例 定义store store/index.js import { create } from "zustand";export const useCount…...
vue3+vite+SQL.js 读取db3文件数据
前言:好久没写博客了,最近一直在忙,没时间梳理。最近遇到一个需求是读取本地SQLite文件,还是花费了点时间才实现,没怎么看到vite方面写这个的文章,现在分享出来完整流程。 1.pnpm下载SQL.js(什么都可以下)…...
微信小程序 限制字数文本域框组件封装
微信小程序 限制字数文本域框 介绍:展示类组件 导入 在app.json或index.json中引入组件 "usingComponents": {"text-field":"/pages/components/text-field/index"}代码使用 <text-field maxlength"500" bindtabsIt…...
阿里国际站(直通车)
1.国际站流量 2.直通车即P4P(pay for performance点击付费) 2.1直通的含义:按点击付费,通过自助设置多维度展示产品信息,获得大量曝光吸引潜在买家。 注意:中国大陆和尼日利尼地区点击不扣费。 2.2扣费规…...
C# GC机制
在C#中,垃圾回收(Garbage Collection,简称GC)是CLR(公共语言运行时)的一个重要部分,用于自动管理内存。它会自动释放不再使用的对象所占用的内存,避免内存泄漏,减少程序员…...
wpf devexpress在未束缚模式中生成Tree
TreeListControl 可以在未束缚模式中没有数据源时操作,这个教程示范如何在没有数据源时创建tree 在XAML生成tree 创建ProjectObject类实现数据对象显示在TreeListControl: public class ProjectObject {public string Name { get; set; }public string Executor {…...
Python利器:os与chardet读取多编码文件
在数据处理中会遇到读取位于不同位置的文件,每个文件所在的层级不同,而且每个文件的编码类型各不相同,那么如何高效地读取文件呢? 在读取文件时首先需要获取文件的位置信息,然后根据文件的编码类型来读取文件。本文将使用os获取文件路径,使用chardet得到文件编码类型。 …...
微服务和注册中心
微服务和注册中心是紧密相关的概念,可以说注册中心是微服务架构中必不可少的一部分。 在微服务架构中,系统被拆分成了若干个独立的服务,因此服务之间需要进行通信和协作。为了实现服务的发现和调用,需要一个中心化的注册中心来进…...
吴恩达《机器学习》9-1-9-3:反向传播算法、反向传播算法的直观理解
一、正向传播的基础 在正向传播中,从神经网络的输入层开始,通过一层一层的计算,最终得到输出层的预测结果。这是一种前向的计算过程,即从输入到输出的传播。 二、反向传播算法概述 反向传播算法是为了计算代价函数相对于模型参数…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 核心…...
基于TurtleBot3在Gazebo地图实现机器人远程控制
1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...
JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
