Ubuntu-14.04
Rsyslog 旋轉,但仍記錄到舊日誌
伺服器: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
. 檢查了過去幾天的日誌,它正在輪換,並使用最新的日誌。如果有更好的方法,非常歡迎有人加入,但這對我有用。/var/log/watchguard { rotate 14 daily missingok create 640 syslog adm compress delaycompress su root syslog copytruncate }
工作得很好!
-rw-r----- 1 syslog adm 336M Jan 27 02:34 watchguard.2.gz -rw-r----- 1 syslog adm 5.2G Jan 28 02:34 watchguard.1 -rw-r----- 1 syslog adm 950M Jan 28 08:02 watchguard