服务器:Ubuntu 服务器 14.04
我有一个 Watchguard Firebox 记录到服务器。它应该每天轮换,但是,当轮换发生时,它不会写入新日志。它一直写到前一个。
里面的配置/etc/logrotate.d/
/var/log/watchguard
{
rotate 14
daily
missingok
create 640 syslog adm
compress
delaycompress
sharedscripts
su root syslog
postrotate
/usr/sbin/service rsyslog reload >/dev/null 2>&1 || true
endscript
}
如您所见,轮换正在发生,但最新日志未写入:
-rw-r----- 1 syslog adm 20 Jan 17 02:30 watchguard.3.gz
-rw-r----- 1 syslog adm 20 Jan 18 02:30 watchguard.2.gz
-rw-r----- 1 syslog adm 0 Jan 20 02:30 watchguard <---- SHOULD CONTAIN DATA
-rw-r----- 1 syslog adm 3.0G Jan 20 10:34 watchguard.1 <--- ROTATED, BUT STILL GETTING DATA
就好像它不关心文件的名称一样。它只是继续写。我的logrotate
配置语法不正确吗?
我完全删除了
postrotate
脚本,并添加了copytruncate
. 检查了过去几天的日志,它正在轮换,并使用最新的日志。如果有更好的方法,非常欢迎有人加入,但这对我有用。工作得很好!