logrotate
日志會隨着時間增長,在這種情況下,我們需要手動執行日志清理以回收空間,這是一件繁瑣的管理任務。
Linux 中配置 logrotate 程序,它可以自動執行日志文件的輪換、壓縮、刪除和用郵件發出。
logrotate 是如何工作的
默認情況下,logrotate 命令作為放在 /etc/cron.daily 中的 cron 任務,每天運行一次,它會幫助你設置一個策略,其中超過某個時間或大小的日志文件被輪換。
命令: /usr/sbin/logrotate
配置文件: /etc/logrotate.conf
[root@client01 ~]# ls /etc/cron.daily/
logrotate makewhatis.cron
[root@localhost ~]$ cat /etc/logrotate.conf weekly # 每周切割一次 rotate 4 # 只保留四份文件 create # 切割后會創建一個新的文件 dateext # 指定切割文件的后綴名,這里以日期為后綴名 include /etc/logrotate.d # 包含其他配置文件的目錄 /var/log/wtmp { # 對哪個文件進行切割 monthly # 每個月切割一次 create 0664 root utmp # 指定創建的新文件的權限,屬主,屬組 minsize 1M # 文件容量超過這個值時才進行切割 rotate 1 # 只保留一份文件 } /var/log/btmp { missingok monthly create 0600 root utmp rotate 1 }
配置參數:
compress 通過gzip 壓縮轉儲以后的日志
nocompress 不需要壓縮時,用這個參數
copytruncate 用於還在打開中的日志文件,把當前日志備份並截斷
nocopytruncate 備份日志文件但是不截斷
create mode owner group 轉儲文件,使用指定的文件模式創建新的日志文件
nocreate 不建立新的日志文件
delaycompress 和 compress 一起使用時,轉儲的日志文件到下一次轉儲時才壓縮
nodelaycompress delaycompress 選項,轉儲同時壓縮。
errors address 專儲時的錯誤信息發送到指定的Email 地址
ifempty 即使是空文件也轉儲,這個是 logrotate 的缺省選項。
notifempty 如果是空文件的話,不轉儲
mail address 把轉儲的日志文件發送到指定的E-mail 地址 nomail 轉儲時不發送日志文件 olddir directory 轉儲后的日志文件放入指定的目錄,必須和當前日志文件在同一個文件系統 noolddir 轉儲后的日志文件和當前日志文件放在同一個目錄下 prerotate/endscript 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 postrotate/endscript 在轉儲以后需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行 daily 指定轉儲周期為每天 weekly 指定轉儲周期為每周 monthly 指定轉儲周期為每月 rotate count 指定日志文件刪除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份 tabootext [+] list 讓logrotate 不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~ size size當日志文件到達指定的大小時才轉儲,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem)
