logrotate 程序是一個日志文件管理工具。用來把舊的日志文件刪除,並創建新的日志文件,我們把它叫做“轉儲”。我們可以根據日志文件的大小,也可以根據其天數來轉儲,這個過程一般通過 cron 程序來執行。
linux已經默認安裝有logrotate包
1./etc/logrotate.conf #主配置文件
#配置參數
daily 指定轉儲周期為每天
weekly 指定轉儲周期為每周
monthly 指定轉儲周期為每月
rotate 轉儲次數,超過將會刪除最老的那一個
missingok 忽略錯誤,如“日志文件無法找到”的錯誤提示
dateext 切換后的日志文件會附加上一個短橫線和YYYYMMDD格式的日期
compress 通過gzip 壓縮轉儲舊的日志
delaycompress 當前轉儲的日志文件到下一次轉儲時才壓縮
notifempty 如果日志文件為空,不執行切割
sharedscripts 只為整個日志組運行一次的腳本
prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
postrotate/endscript 在轉儲以后需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行
size size當日志文件到達指定的大小時才轉儲,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).
2.對zabbix-agent日志進行配置,創建zabbix-agent文件即可
cat /etc/logrotate.d/zabbix-agent
/var/log/zabbix/zabbix_agentd.log {
weekly
rotate 12
compress
delaycompress
missingok
notifempty
create 0664 zabbix zabbix
}
cd /var/log/zabbix/ && ls -lh #查看切分后的日志
-rw-rw-r-- 1 zabbix zabbix 75M Aug 19 03:32 zabbix_agentd.log-20180812.gz
-rw-rw-r-- 1 zabbix zabbix 76M Aug 26 03:37 zabbix_agentd.log-20180819.gz
-rw-rw-r-- 1 zabbix zabbix 76M Sep 2 03:13 zabbix_agentd.log-20180826.gz
-rw-rw-r-- 1 zabbix zabbix 76M Sep 9 03:37 zabbix_agentd.log-20180902.gz
-rw-rw-r-- 1 zabbix zabbix 76M Sep 16 03:49 zabbix_agentd.log-20180909.gz
-rw-rw-r-- 1 zabbix zabbix 76M Sep 23 03:34 zabbix_agentd.log-20180916.gz
-rw-rw-r-- 1 zabbix zabbix 605M Sep 19 23:01 zabbix_agentd.log-20180923
3.系統每天運行logrotate來執行,系統已經默認創建
cat /etc/cron.daily/logrotate
#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf >/dev/null 2>&1
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0
logrotate可以在任何時候從命令行手動調用
logrotate /etc/logrotate.conf