logrotate

系統日誌進行輪轉、壓縮和刪除

補充說明

logrotate命令 用於對系統日誌進行輪轉、壓縮和刪除,也可以將日誌發送到指定郵箱。使用logrotate指令,可讓你輕鬆管理系統所產生的記錄文件。每個記錄文件都可被設置成每日,每週或每月處理,也能在文件太大時立即處理。您必須自行編輯,指定配置文件,預設的配置文件存放在/etc/logrotate.conf文件中。

語法

1logrotate(選項)(參數)

選項

1-?或--help:在線幫助;
2-d或--debug:詳細顯示指令執行過程,便於排錯或瞭解程序執行的情況;
3-f或--force :強行啓動記錄文件維護操作,縱使logrotate指令認爲沒有需要亦然;
4-s<狀態文件>或--state=<狀態文件>:使用指定的狀態文件;
5-v或--version:顯示指令執行過程;
6-usage:顯示指令基本用法。

參數

配置文件:指定lograote指令的配置文件。

實例

crontab 會定時調用logrotate命令 在 /etc/cron.daily/logrotate 文件中配置使用

logrotate的配置文件/etc/logrotate.conf 定義引用/etc/logrotate.d目錄下的一些自定義的log配置

/etc/logrotate.d目錄下創建任意後綴名的文件,即可使用對日誌進行輪轉

 1/tmp/log/log.txt
 2{
 3    copytruncate
 4    daily
 5    rotate 30
 6    missingok
 7    ifempty
 8    compress
 9    noolddir
10}

這個配置文件代表的意思是將/tmp/log/log.txt文件 進行輪轉壓縮

 1compress                 通過gzip 壓縮轉儲以後的日誌
 2nocompress               不做gzip壓縮處理
 3copytruncate             用於還在打開中的日誌文件,把當前日誌備份並截斷;是先拷貝再清空的方式,拷貝和清空之間有一個時間差,可能會丟失部分日誌數據。
 4nocopytruncate 備份日誌文件不過不截斷
 5create mode owner group  輪轉時指定創建新文件的屬性,如create 0777 nobody nobody
 6nocreate                 不建立新的日誌文件
 7delaycompress            和compress 一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮
 8nodelaycompress          覆蓋 delaycompress 選項,轉儲同時壓縮
 9missingok                如果日誌丟失,不報錯繼續滾動下一個日誌
10errors address           專儲時的錯誤信息發送到指定的Email 地址
11ifempty                  即使日誌文件爲空文件也做輪轉,這個是logrotate的缺省選項。
12notifempty               當日志文件爲空時,不進行輪轉
13mail address             把轉儲的日誌文件發送到指定的E-mail 地址
14nomail                   轉儲時不發送日誌文件
15olddir directory         轉儲後的日誌文件放入指定的目錄,必須和當前日誌文件在同一個文件系統
16noolddir                 轉儲後的日誌文件和當前日誌文件放在同一個目錄下
17sharedscripts            運行postrotate腳本,作用是在所有日誌都輪轉後統一執行一次腳本。如果沒有配置這個,那麼每個日誌輪轉後都會執行一次腳本
18prerotate                在logrotate轉儲之前需要執行的指令,例如修改文件的屬性等動作;必須獨立成行
19postrotate               在logrotate轉儲之後需要執行的指令,例如重新啓動 (kill -HUP) 某個服務!必須獨立成行
20daily                    指定轉儲週期爲每天
21weekly                   指定轉儲週期爲每週
22monthly                  指定轉儲週期爲每月
23rotate count             指定日誌文件刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份
24dateext                  使用當期日期作爲命名格式
25dateformat .%s           配合dateext使用,緊跟在下一行出現,定義文件切割後的文件名,必須配合dateext使用,只支持 %Y %m %d %s 這四個參數
26size(或minsize) log-size 當日志文件到達指定的大小時才轉儲

注意事項

/etc/logrotate.d目錄下創建任意後綴名的文件

 1/tmp/log/log*
 2{
 3    copytruncate
 4    daily
 5    rotate 30
 6    missingok
 7    ifempty
 8    compress
 9    noolddir
10}

這種情況下,會將輪轉過的log再重新輪轉,因爲輪轉過後的文件名也是已log開頭的

來源:https://github.com/jaywcjlove/linux-command

最後修改於: Wednesday, January 31, 2024

相關文章:

翻譯: