[root@localhost ~]# vi /etc/logrotate.conf
#see "man logrotate" for details
#rotate log files weekly
weekly
#每周對日志文件進行一次輪替
#keep 4 weeks worth of backlogs rotate 4
#保存4個日志文件,也就是說,如果進行了5次日志輪替,就會刪除第一個備份曰志
#create new (empty) log files after rotating old ones create
#在日志輪替時,自動創建新的日志文件
#use date as a suffix of the rotated file dateext
#使用日期作為日志輪替文件的后綴
#uncomment this if you want your log files compressed #compress
#日志文件是否壓縮。如果取消注釋,則日志會在轉儲的同時進行壓縮
#以上日志配置為默認配置,如果需要輪替的日志沒有設定獨立的參數,那么都會遵循以上參數
#如果輪替曰志配置了獨立參數,那么獨立參數的優先級更高
#RPM packages drop log rotation information into this directory include /etc/logrotate.d
#包含/etc/logrotate.d/目錄中所有的子配置文件。也就是說,會把這個目錄中所有的子配置文件讀取進來,進行日志輪替
#no packages own wtmp and btmp -- we'11 rotate them here
#以下兩個輪替曰志有自己的獨立參數,如果和默認的參數沖突,則獨立參數生效
/var/log/wtmp {
#以下參數僅對此目錄有效
monthly
#每月對日志文件進行一次輪替
create 0664 root utmp
#建立的新日志文件,權限是0664,所有者是root,所屬組是utmp組
minsize 1M
#日志文件最小輪替大小是1MB。也就是日志一定要超過1MB才會輪替,否則就算時間達到一個月,也不進行曰志輪替
rotate 1
#僅保留一個曰志備份。也就是只保留wtmp和wtmp.1曰志)
/var/log/btmp {
#以下參數只對/var/log/btmp生效
missingok
#如果日志不存在,則忽略該日志的警告信患
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
| 參 致 | 參數說明 |
|---|---|
| daily | 日志的輪替周期是毎天 |
| weekly | 日志的輪替周期是每周 |
| monthly | 日志的輪控周期是每月 |
| rotate數宇 | 保留的日志文件的個數。0指沒有備份 |
| compress | 當進行日志輪替時,對舊的日志進行壓縮 |
| create mode owner group | 建立新日志,同時指定新日志的權限與所有者和所屬組.如create 0600 root utmp |
| mail address | 當進行日志輪替時.輸出內存通過郵件發送到指定的郵件地址 |
| missingok | 如果日志不存在,則忽略該日志的警告信息 |
| nolifempty | 如果曰志為空文件,則不進行日志輪替 |
| minsize 大小 | 日志輪替的最小值。也就是日志一定要達到這個最小值才會進行輪持,否則就算時間達到也不進行輪替 |
| size大小 | 日志只有大于指定大小才進行日志輪替,而不是按照時間輪替,如size 100k |
| dateext | 使用日期作為日志輪替文件的后綴,如secure-20130605 |
| sharedscripts | 在此關鍵宇之后的腳本只執行一次 |
| prerotate/cndscript | 在曰志輪替之前執行腳本命令。endscript標識prerotate腳本結束 |
| postrolaie/endscripl | 在日志輪替之后執行腳本命令。endscripi標識postrotate腳本結束 |
"/var/log/httpd/access.log" /var/log/httpd/error.log {
#日志輪替的是/var/log/httpd/中RPM包默認安裝的apache正確訪問日志和錯誤日志
rotate 5
#輪替5次
mail www@my.org
#把信息發送到指定郵箱
size 100k
#日志大于100KB時才進行日志輪替,不再按照時間輪替
sharedscripts
#以下腳本只執行一次
postrotate
#在日志輪替結束之后,執行以下腳本
/usr/bin/killall -HUP httpd
#重啟apache 服務
endscript
#腳本結束
}
[root@localhost ~]# chattr +a /var/log/alert.log #先給日志文件賦予chattr的a屬性,保證日志的安全
[root@localhost ~]# vi /etc/logrotate.d/alter
#創建alter輪替文件,把/var/log/alert.log加入輪替
/var/log/alert.log {
weekly
#每周輪替一次
rotate 6
#保留6個輪替曰志
sharedscripts
#以下命令只執行一次
prerotate
#在日志輪替之前執行
/usr/bin/chattr -a /var/log/alert.log
#在日志輪替之前取消a屬性,以便讓日志可以輪替
endscript
#腳本結朿
sharedscripts
postrotate
#在日志輪替之后執行
/usr/bin/chattr +a /var/log/alert.log
#在日志輪替之后,重新加入a屬性
endscript
sharedscripts
postrotate
/bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2>/dev/null) fi>/dev/null
endscript
#重啟rsyslog服務,保證日志輪替正常進行
}
新聞熱點
疑難解答