发现维护的自己编写linux 系统检查脚本一个bug (syslog\message)

发现维护的自己编写linux 系统检查脚本一个bug (syslog\message)
 
犯了一个低级错误
原存在bug的脚本如下:
 
chattr -a /var/log/messages
YDATE=`date +%Y%m%d%H%M%S`
mv /var/log/messages /var/log/messages.$YDATE
> /var/log/messages
chattr +i /var/log/messages.$YDATE
chattr +a /var/log/messages
 

但实际上
上面脚本并不能成功切换message file
 
Syslogd 仍然打开旧的message file
 

显示如下 
lsof |grep message
---------------------------------------
syslogd    5148      root    1w      REG                8,2   5200031   10354750 /var/log/messages.20120707160022
 
可采用
增加重启syslogd
/usr/bin/killall -HUP syslogd解决(logrotate采用此方式)
或copy 并清空message的方法
 
 
 
原文地址:https://www.cnblogs.com/4admin2root/p/2645737.html