系統日志進行輪轉、壓縮和刪除
logrotate命令 用于對系統日志進行輪轉、壓縮和刪除,也可以將日志發送到指定郵箱。使用logrotate指令,可讓你輕松管理系統所產生的記錄文件。每個記錄文件都可被設置成每日,每周或每月處理,也能在文件太大時立即處理。您必須自行編輯,指定配置文件,預設的配置文件存放在/etc/logrotate.conf
文件中。
logrotate(選項)(參數)
-?或--help:在線幫助;
-d或--debug:詳細顯示指令執行過程,便于排錯或了解程序執行的情況;
-f或--force :強行啟動記錄文件維護操作,縱使logrotate指令認為沒有需要亦然;
-s<狀態文件>或--state=<狀態文件>:使用指定的狀態文件;
-v或--version:顯示指令執行過程;
-usage:顯示指令基本用法。
配置文件:指定lograote指令的配置文件。
crontab 會定時調用logrotate命令 在 /etc/cron.daily/logrotate
文件中配置使用
logrotate的配置文件/etc/logrotate.conf
定義引用/etc/logrotate.d
目錄下的一些自定義的log配置
在/etc/logrotate.d
目錄下創建任意后綴名的文件,即可使用對日志進行輪轉
/tmp/log/log.txt
{
copytruncate
daily
rotate 30
missingok
ifempty
compress
noolddir
}
這個配置文件代表的意思是將/tmp/log/log.txt
文件 進行輪轉壓縮
compress 通過gzip 壓縮轉儲以后的日志
nocompress 不做gzip壓縮處理
copytruncate 用于還在打開中的日志文件,把當前日志備份并截斷;是先拷貝再清空的方式,拷貝和清空之間有一個時間差,可能會丟失部分日志數據。
nocopytruncate 備份日志文件不過不截斷
create mode owner group 輪轉時指定創建新文件的屬性,如create 0777 nobody nobody
nocreate 不建立新的日志文件
delaycompress 和compress 一起使用時,轉儲的日志文件到下一次轉儲時才壓縮
nodelaycompress 覆蓋 delaycompress 選項,轉儲同時壓縮
missingok 如果日志丟失,不報錯繼續滾動下一個日志
errors address 專儲時的錯誤信息發送到指定的Email 地址
ifempty 即使日志文件為空文件也做輪轉,這個是logrotate的缺省選項。
notifempty 當日志文件為空時,不進行輪轉
mail address 把轉儲的日志文件發送到指定的E-mail 地址
nomail 轉儲時不發送日志文件
olddir directory 轉儲后的日志文件放入指定的目錄,必須和當前日志文件在同一個文件系統
noolddir 轉儲后的日志文件和當前日志文件放在同一個目錄下
sharedscripts 運行postrotate腳本,作用是在所有日志都輪轉后統一執行一次腳本。如果沒有配置這個,那么每個日志輪轉后都會執行一次腳本
prerotate 在logrotate轉儲之前需要執行的指令,例如修改文件的屬性等動作;必須獨立成行
postrotate 在logrotate轉儲之后需要執行的指令,例如重新啟動 (kill -HUP) 某個服務!必須獨立成行
daily 指定轉儲周期為每天
weekly 指定轉儲周期為每周
monthly 指定轉儲周期為每月
rotate count 指定日志文件刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份
dateext 使用當期日期作為命名格式
dateformat .%s 配合dateext使用,緊跟在下一行出現,定義文件切割后的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個參數
size(或minsize) log-size 當日志文件到達指定的大小時才轉儲
在/etc/logrotate.d
目錄下創建任意后綴名的文件
/tmp/log/log*
{
copytruncate
daily
rotate 30
missingok
ifempty
compress
noolddir
}
這種情況下,會將輪轉過的log再重新輪轉,因為輪轉過后的文件名也是已log開頭的