Linux系统的日志管理、时间同步、延迟命令at

系统日志默认分类

方便查看和管理

/var/log/messages    系统服务及日志,包括服务的信息,报错等等

/var/log/secure         系统认证信息日志

/var/log/maillog        系统邮件服务信息

/var/log/cron             系统定时任务信息

/var/log/boot.log       系统启动信息

日志管理服务rsyslog

rsyslog将内存中的日志采集到硬盘中保存

日志采集规则:日志类型.日志级别   日志存放文件

/etc/rsyslog.conf   ##主配置文件


日志类型

  • auth       用户登陆日志(pam产生的日志)
  • authpriv   服务认证日志(sshd认证)
  • kern       内核日志
  • cron       定时任务日志
  • lpr        打印机日志
  • mail       邮件日志
  • news       新闻
  • user       用户相关程序日志
日志级别
  • debug      系统调试信息
  • info       常规信息
  • warning    警告信息
  • err        报错(级别低,组织了某个功能不能正常工作)
  • crit       报错(级别高,组合了整个软件或者系统不能正常工作)
  • alert      需要立即修改的信息
  • emerg      内核崩溃等严重信息

例如:将所有日志采集到 /var/log/log.all

日志远程同步

将所有的日志同步到一台主机

为了方便管理将发送方主机名设为node2 接收方为node1


在日志发送方

vim /etc/rsyslog.conf

*.*    @日志接受方地址ip   发送日志


*.*             @172.25.254.100 ##通过udp协议把日志发送到100主机,@udp,@@tcp

systemctl restart rsyslog ##重启采集服务

在日志接收方

vim /etc/rsyslog.conf

15 $ModLoad imudp

16  $UDPServerRun 514

取消这两行的注释 使node1成为可以接受日志的状态

systemctl restart rsyslog  ##重启采集服务

systemctl stop firewalld   ##关闭防火墙

systemctl disable firewalld


cat /var/log/message ##查看远程日志


定义日志采集格式

vim /etc/rsyslog.conf

$template 格式名称,"日志采集格式"

*.info;mail.none;authpriv.none;cron.none        /var/log/messages;格式名称

$template xupt,"%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n"


%timegenerated%   ##日志生成时间

%FROMHOST-IP%     ##日志来源主机的IP

%syslogtag%       ##日志生成程序

%msg%             ##日志内容

\n                ##换行

*.info;mail.none;authpriv.none;cron.none        /var/log/messages;westos


日志分析工具journal

systemd-journald        进程名称

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


-n 3                             显示最新3条


-p err                          显示报错


-f                              监控日志  用户ctrl+c结束监控


journalctl --since  --until   从什么时间到什么时间的日志


-o verbose ##显示日志能够使用的详细进程参数


journalctl _PID=651   ##查看id为651的进程的日志

因为journalctl是直接查看内存中的日志,所以reboot 关机之后日志消失

对system-journald管理

默认此程序只负责对日志进行查看而不对日志进行保存和采集

那么关机之后在开机,对日志进行查看,只能查看到开机后的日志,系统之前的日志因为是保存在内

存中的,所以关机后就被清空了,那么在开机用journalctl 是看不到的。

如何让systemd-journal保存日志到硬盘中

设置:

mkdir /var/log/journal

chgrp systemd-journal  /var/log/journal

chmod  g+s /var/log.journal

killall -1 systemd-journald


测试效果:

journalctl -n 3

date

reboot

journalctl


时间同步

在服务器端开启时间共享

vim /etc/chrony.conf

29 local stratum 10 ##开启时间共享功能并设定共享级别,这个参数开启后本机不同步别人的时间到本机

22 allow 172.25.254.0/24  ##允许那些客户端来访问本机共享的时间

systemctl restart chronyd


在客户端:

vim /etc/chrony.conf

server 172.25.254.100 iburst



systemctl restart chronyd

chronyc sources -v

出现*说明同步成功

timedatectl命令

显示当前时间信息


set-time ##设定当前时间


set-timezone ##设定当前时区


set-local-rtc 0|1 ##设定是否使用utc时间

延迟命令 at

at 时间

at now+5min

at 16:00

at> touch /mnt/file{1..10}

ctrl+d

at> <EOT>

at -l ##查看延迟的任务

at -c 3 ##查看延迟任务的具体内容

at -r 3  ##删除延迟任务


监控命令:watch -n 1 ls /mnt/



/etc/at.deny ##at命令的黑名单
/etc/at.allow ##白名单
当白名单建立黑名单失效 其他用户除了root用户都不能使用at


猜你喜欢

转载自blog.csdn.net/weixin_41476978/article/details/79978710