1. 默认的日志时间戳显示为如下形式:
- /var/log/secure
Jul 18 22:58:22 node0 su: pam_unix(su-l:session): session opened for user root by user(uid=1001)
Jul 18 23:03:31 node0 su: pam_unix(su-l:session): session closed for user root
- /var/log/messages
Jul 14 09:22:07 node0 NetworkManager[701]: <info> [1563067327.3908] dhcp4 (ens33): address 192.168.74.129
Jul 14 09:22:07 node0 NetworkManager[701]: <info> [1563067327.3914] dhcp4 (ens33): plen 24 (255.255.255.0)
2. 做如下修改
vim /etc/rsyslog.conf
# Use default timestamp format
# 下一行是原来的配置,将它注释
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
# 添加下面两行
$template CustomFormat,"%$NOW% %TIMESTAMP:8:15% %HOSTNAME% %syslogtag% %msg%\n"
$ActionFileDefaultTemplate CustomFormat
然后重启 rsyslog 服务
systemctl restart rsyslog.service
再看看结果:
- /var/log/secure
2019-07-19 01:35:56 node0 polkitd[670]: Loading rules from directory /etc/polkit-1/rules.d
2019-07-19 01:35:56 node0 polkitd[670]: Loading rules from directory /usr/share/polkit-1/rules.d
- /var/log/messages
2019-07-19 01:47:29 node0 NetworkManager[701]: <info> [1563472049.7353] dhcp4 (ens33): nameserver '192.168.74.2'
2019-07-19 01:47:29 node0 NetworkManager[701]: <info> [1563472049.7353] dhcp4 (ens33): domain name 'localdomain'
3. 在/etc/profile中设置环境变量
export TIME_STYLE='+%Y/%m/%d %H:%M:%S'
只能修改ls命令的输出日期格式。
4. 现在可以使用sed提取日志记录了
sed -n '/2018-11-08 10:15:00/, /2018-11-11 10:15:00/p' logfile
注意:日期字符串必须在logfile中存在。如果“2018-11-08 10:15:00”或者“2018-11-11 10:15:00”在logfile中没有,那么sed是不会输出任何结果的。
当然如下形式也可以按时间顺序过滤日志
sed -n '/Jul 18 22:09:53/,/Jul 18 22:56:03/p' logfile
sed -n '/Jul 18 22:09:53/,$p' logfile 这里$表示文件结尾
同样要求日期字符串必须在logfile中存在。
5. 修改时间为24小时制
终端输入命令:
tzselect
根据提示选择:
5
→
9
→
1
→
1
→
Y
e
s
5 \rightarrow 9 \rightarrow 1 \rightarrow 1 \rightarrow Yes
5→9→1→1→Yes
rm /etc/localtime
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime