Linux日志管理
自有服务,即不需要用户独立去安装的软件的服务,而是当系统安装好之后就可以直接使用的服务(内置)。
一、设置主机名
#hostname 查看完整的主机名
#hostname -f 查看主机名、域名
①临时设置主机名(立竿见影),需要切换用户使之生效
#hostname 设置的主机名
例如:需要将当前的主机的主机名设置成yunwei.itcast.cn
②永久设置主机名(需要重启生效)先找到文件/etc/sysconfig/network【主机名的配置文件】
修改其中的HOSTNAME为自己需要设置的永久主机名
二、centos7系统启动过程及相关配置文件
centos7系统启动过程CentOS7引导顺序
1.UEFi或BIOS初始化,运行POST开机自检
2.选择启动设备 # 光盘
3.引导装载程序, centos7是grub2
4.加载装载程序的配置文件:/etc/grub.d/ /etc/default/grub /boot/grub2/grub.cfg
5.加载内核选项
6.加载initramfs初始化伪文件系统
7.内核初始化,centos7使用systemd代替init
8.执行initrd.target所有单元,包括挂载/etc/fstab #target是目标的意思
9.从initramfs根文件系统切换到磁盘根目录
10.systemd执行默认target配置,配置文件/etc/systemd/system/default.target
11.systemd执行sysinit.target初始化系统及basic.target准备操作系统
12.systemd启动multi-user.target下的本机与服务器服务
13.systemd执行multi-user.target下的/etc/rc.d/rc.local
14.Systemd执行multi-user.target下的getty.target及登录服务
15.systemd执行graphical需要的服务 #图形界面
三、crontab计划任务介绍
计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据
计划任务的安排方式分两种:
一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情
一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务
at和crontab这两个命令:
at:它是一个可以处理仅执行一次就结束的指令
crontab:它是会把你指定的工作或任务,比如:脚本等,按照你设定的周期一直循环执行下去
突发性的命令:
语法格式: at 时间 ; 服务: atd
[root@localhost ~]# systemctl start atd #开启atd服务
[root@localhost ~]# systemctl status atd #查看atd服务状态
[root@localhost ~]# systemctl is-enabled atd #查看是否开始开机启动服务,如果弹出enabled,说明开机启动此服务
实战-使用at创建计划任务
[root@localhost ~]# date #查看系统时间
2018年 05月 21日 星期一 20:43:29 CST
[root@localhost ~]# at 20:46 #注意:如果是上午时间,后面加上am,比如9:20am
at> mkdir /tmp/yun #输入你要执行的命令
at> touch /tmp/yun/a.txt
at< EOT> 结束:ctrl+d
[root@localhost ~]# at -l #查看计划任务
[root@localhost ~]# atq #查看计划任务
检查at计划任务运行结果:
[root@localhost ~]# ls /tmp/yun/
查看和删除at将要执行的计划任务
这个查看,只能看到还没有执行的。如果这个任务已经开始执行或者执行完成了,是看不到的 [root@localhost ~]# at -l
[root@localhost ~]# at -c 1 #-c 打印任务的内容到标准输出, 查看1号计划任务具体内容 查看定时任务内容
[root@localhost ~]# ls /var/spool/at/
a00003018452cb a0000501845084 spool
[root@localhost ~]# tail -5 /var/spool/at
a0000501845084
at计划任务的特殊写法
[root@localhost ~]# at 20:00 2018-10-1 在某天
[root@localhost ~]#at now +10min 在 10分钟后执行
[root@localhost ~]# at 17:00 tomorrow 明天下午5点执行
[root@localhost ~]#at 6:00 pm +3 days 在3天以后的下午6点执行
[root@localhost ~]# at 23:00 < a.txt # 把a.txt的内容给 23:00这个时间
删除at计划任务
语法: atrm 任务编号
[root@localhost ~]# at -l
3 Tue May 22 08:43:00 2018 a root
5 Mon May 21 23:00:00 2018 a root
[root@localhost ~]# atrm 5
[root@localhost ~]# at -l
四、crontab定时任务的使用
语法:#crontab 选项
常用选项:
-l:list,列出指定用户的计划任务列表
-e:edit,编辑指定用户的计划任务列表
-u:user,指定的用户名,如果不指定,则表示当前用户
-r:remove,删除指定用户的计划任务列表
①列出 看到上述的提示表示root用户没有计划任务需要去做。
②编辑计划任务(重点)
计划任务的规则语法格式,以行为单位,一行则为一个计划:
分 时 日 月 周 需要执行的命令
例如:如果想要每天的0点0分执行reboot指令,则可以写成 0 0 * * * reboot
取值范围(常识):
分:0~59 时:0~23 日:1~31 月:1~12 周:0~7,0和7表示星期天 四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6
问题1:
每月1、10、22日的4:45重启network服务
45 4 1,10,22 * * service network restart
问题2:每周六、周日的1:10重启network服务
10 1 * * 6,7 service network restart
问题3:每天18:00至23:00之间每隔30分钟重启network服务
*/30 18-23 * * * service network restart
问题4:每隔两天的上午8点到11点的第3和第15分钟执行一次重启
3,15 8-11 */2 * * reboot
案例:真实测试案例,每1分钟往root家目录中的RT.txt中输一个1,为了看到效果使用追加输出 */1 * * * * echo 1 >> /root/RT.txt
执行的效果: 注意:在计划任务中,默认的最小单位就是分,不能再小了。
五、系统日志管理
系统日志文件概述:/var/log目录保管由rsyslog维护的,里面存放的一些特定于系统和服务的日志文件
/var/log/messages 大多数系统日志消息记录在此处。有也例外的:如与身份验证,电子邮件处理相关的定期作业任务等
/var/log/secure 安全和身份验证相关的消息和登录失败的日志文件。 ssh远程连接产生的日志
/var/log/maillog 与邮件服务器相关的消息日志文件
在centos7中,系统日志消息由rsyslog 服务负责处理
常见日志文件的作用
/var/log/cron 与定期执行任务相关的日志文件
/var/log/boot.log 与系统启动相关的消息记录
/var/log/dmesg 与系统启动相关的消息记录
例1:查看哪个IP地址经常暴力破解系统用户密码
[root@localhost ~]# sshroot@192.168.1.63#故意输错3次密码
查看安全和身份验证日志:
[root@localhost ~]# grep Failed /var/log/secure
案例:使用 /var/log/btmp文件查看系统的用户
/var/log/btmp文件是记录错误登录系统的日志。如果发现/var/log/btmp日志文件比较大,大于1M,就算大了,就说明很多人在暴力破解ssh服务,此日志需要使用lastb程序查看 [root@localhost log]# ll -h /var/log/btmp
日志的记录方式
分类 →级别
日志的分类:
daemon:后台进程相关 kern :内核产生的信息 lpr :打印系统产生的
authpriv :安全认证 cron: 定时相关 mail: 邮件相关
syslog :日志服务本身的 news :新闻系统
local0~7 自定义的日志设备
local0-local7 日志的级别: 轻→重
7 debug 信息对开发人员调试应用程序有用,在操作过程中无用
6 info 正常的操作信息,可以收集报告,测量吞吐量等
5 notice 注意,正常但重要的事件,
4 warning 警告,提示如果不采取行动。将会发生错误。比如文件系统使用90%
3 err 错误,阻止某个模块或程序的功能不能正常使用
2 crit 关键的错误,已经影响了整个系统或软件不能正常工作的信息
1 alert 警报,需要立刻修改的信息
0 emerg 紧急,内核崩溃等严重信息
rsyslog日志服务
->服务名称rsyslog ->配置文件 /etc/rsyslog.conf
我们来查看一下日志的配置文件信息:
编辑配置文件 vim /etc/rsyslog.conf *.info;mail.none;authpriv.none;cron.none /var/log/messages authpriv.* /var/log/secure
mail.* -/var/log/maillog
cron.* /var/log/cron
*.emerg :omusrmsg:* uucp,news.crit /var/log/spooler local7.* /var/log/boot.log
注释:
#$UDPServerRun 514 #允许514端口接收使用UDP协议转发过来的日志 #$InputTCPServerRun 514 ##允许514端口接收使用TCP协议转发过来的日志
#kern.* 内核类型的所有级别日志→存放到→ /dev/console *.info;mail.none;authpriv.none;cron.none /var/log/messages
所有的类别级别是info以上 除了mail,authpriv,cron (产生的日志太多,不易于查看)
类别. 级别
authpriv.* 认证的信息→存放→ /var/log/secure
mail.* 邮件相关的信息→存放→ -/var/log/maillog
cron.* 计划任务相关的信息→存放→ /var/log/cron
local7.* 开机时显示的信息→存放--> /var/log/boot.log
注: “- ”号: 邮件的信息比较多,现将数据存储到内存,达到一定大小,全部写到硬盘.有利于减少I/O进程的开销 数据存储在内存,如果关机不当数据消失
日志输入的规则
. info 大于等于info级别的信息全部记录到某个文件
.=级别 仅记录等于某个级别的日志
例: .=info 只记录info级别的日志
.! 级别 除了某个级别意外,记录所有的级别信息
例: .!err 除了err外记录所有
.none 指的是排除某个类别
例: mail.none 所有mail类别的日志都不记录
实战-自定义ssh服务的日志类型和存储位置
[root@xuegod63 ~]# vim /etc/rsyslog.conf #以73行下,插入以下红色标记内容
73 local7.* /var/log/boot.log
74 local0.* /var/log/sshd.log
注:把local0类别的日志,保存到 /var/log/sshd.log路径
定义ssh服务的日志类别为local0,编辑sshd服务的主配置文件
[root@xuegod63 log]# vim /etc/ssh/sshd_config #插入 SyslogFacility local0
改:32 SyslogFacility AUTHPRIV
为:32 SyslogFacility local0
先重启rsyslog服务(生效配置)
[root@localhost ~]# vim /etc/ssh/sshd_config
再重启sshd服务.生成日志
[root@localhost ~]# systemctl restart sshd
验证是否生成日志并查看其中的内容,
[root@localhost ~]# cat -n /var/log/sshd.log #说明修改成功
上面对就的信息:时间 主机 服务 进程ID 相关的信息
作者:白色衬衫_f48d
链接:https://www.jianshu.com/p/dd8402315a7d
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。