linux基础篇(七):基于Redhat7系统的系统日志与延时任务

系统日志

配置文件: /etc/rsyslog.conf

系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。

常用日志类型与日志级别

类型

auth            用户登陆日志(pam产生的日志)
authpriv        服务认证日志(sshd认证)
kern            内核日志
corn            定时任务日志
lpr            打印机日志
mail            邮件日志
news            新闻
user            用户相关程序日志
local 1-7        用户自定义日志

级别

debug            系统调试信息
info            常规信息
warning            警告信息
err            报错(级别低,阻止了某个软件不能正常工作)
crit            报错(级别高,阻止了整个软件或整个系统不能正常工作)
alert            需要立即修改信息
emerg            内核崩溃
none            不采集任何日志信息

格式

日志类型.日志级别 日志存放文件
例如:

auth.debug           文件名称    ##用户登陆日志的调试信息
auth.*               文件名称    ##用户登陆日志的所有信息
*.*                  文件名称   ##所有日志类型的所有级别的信息

vim /etc/rsyslog.conf
在这里插入图片描述
auth.debug /var/log/westos ###将用户登录日志的调试信息保存在/var/log/westos文件中

. /var/log/log.all ####将所有类型日志的所有级别信息保存在/var/log/log.all文件中

系统常用日志

/var/log/messages    所有日志级别的常规信息(不包含邮件,服务认证,定时任务)
/var/log/maillog    邮件日志
/var/log/secure        服务认证日志
/var/log/cron        定时任务日志

远程日志同步

需要两台节点
节点一:日志发送方server1 172.25.66.11
节点二:日志接收方server2 172.25.66.12

在日志发送方
vim /etc/rsyslog.conf
. @172.25.66.12 #日志接受方地址
在这里插入图片描述
systemctl restart rsyslog
在这里插入图片描述
在日志接收方

vim /etc/rsyslog.conf
编辑第15、16行
15 $ModLoad imudp 日志接受程序
16 $UDPServerRun 514 接收程序接口
在这里插入图片描述
systemctrl restart rsyslog.srvice
systemctrl stop firewalld 关闭防火墙
systemctrl disabl firewalld 关闭防火墙开机自启动
在这里插入图片描述
测试:
清空日志接受方的日志记录 > /var/log/message
在这里插入图片描述
在日志发送方:
在这里插入图片描述
在日志接受方可以查看到日志发送方的日志
cat /var/log/message
在这里插入图片描述

定义日志采集格式

vim /etc/rsyslog.conf
$template 格式名称(自定义),"日志采集格式"
*.info;mail.none;authpriv.none;cron.none                /var/log/messages;westos
$template westos,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"

%timegenerated%        日志生成时间
%FROMHOST-IP%        日志来源主机的ip
%syslogtag%        日志生成程序
%msg%            日志内容

在这里插入图片描述

systemctl restart rsyslog

测试:
在这里插入图片描述

journalctl

journalctl ##日志查看工具,直接查看内存中的日志

journalctl -n 3            查看最新三条日志
journalctl -p err        查看报错日志
journalctl -f            日志监控   用ctrl+c 结束监控
journalctl --since  --until    查看一个时间区间的日志
journalctl -o verbose        产看日志详细参数

对systemd-journald管理

默认此程序只负责对日志进行查看而不对日志进行保存和采集,那么在关机后在开机,对日志进行查看,只能查看到开机后的日志,系统之前的日志是因为保存在内存中的,所以关机后就被清空了,那么在开机是用journalctl看不到的
如何让systemd-journald保存日志到硬盘中
(1)mkdir /var/log/journal
(2)chgrp systemd-journal /var/log/journal
(3)chmod 2755 /var/log/journal
(4)killall -1 systemd-journald
在这里插入图片描述
测试:
journalctl 重启之前查看日志时间
date 查看当前时间
reboot 重启
journalctl 重启后查看日志,看重启之前的日志是否存在,存在即为正确

系统中的at延时任务

at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。

AT Time中的时间表示方法

  -----------------------------------------------------------------------
  时 间 例子 说明
  -----------------------------------------------------------------------
  Minute    at now + 5 minutes   任务在5分钟后运行
  Hour      at now + 1 hour      任务在1小时后运行
  Days      at now + 3 days      任务在3天后运行
  Weeks     at now + 2 weeks     任务在两周后运行
  Fixed     at midnight          任务在午夜运行
  Fixed     at 10:30pm           任务在晚上10点30分
  Fixed     at 23:59 12/31/2018   任务在2018年12月31号23点59分 

参数详解

at [-V] [-q x] [-f file] [-mldbv] time
at -c job ...
atq [-V] [-q x]
atrm [-V] job ...
-V : 印出版本编号 
-q : 使用指定的伫列(Queue)来储存,at 的资料是存放在所谓的 queue 中,使用者可以同时使用多个 queue,而 queue 的编号为 a, b, c... z 以及 A, B, ... Z 共 52 个 
-m : 即使程序/指令执行完成后没有输出结果, 也要寄封信给使用者 
-f file : 读入预先写好的命令档。使用者不一定要使用交谈模式来输入,可以先将所有的指定先写入档案后再一次读入 网络应用
-l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l) 
-d : 删除指定 (使用者也可以直接使用 atrm 而不用 at -d) 
-v : 列出所有已经完成但尚未删除的指定 

举例:
at now+1min
at> touch /mnt/file{1…5}
ctrl+d
五分钟之后,在/mnt目录创建file1-file5五个文件
在这里插入图片描述
在这里插入图片描述

at黑白名单

/etc/at.deny ##黑名单
/etc/at.allow ##白名单本身不存在,创建后黑名单失效,除了超级用户外的其他用户都不能使用at作业,除非将用户加入白名单

vim /etc/at.deny 将指定用户加入黑名单
vim /etc/at.allow 将指定用户加入白名单

猜你喜欢

转载自blog.csdn.net/gd0306/article/details/83096027