tomcatslog文件,原本應該放在/etc/logrotate.d/下的。其實無所謂了 node
/usr/local/tomcat1/logs/catalina.out /usr/local/tomcat2/logs/catalina.out /usr/local/tomcat3/logs/catalina.out /usr/local/tomcat4/logs/catalina.out /usr/local/tomcat5/logs/catalina.out { rotate 30 daily dateext copytruncate #notifempty missingok }
這個是系統自帶的httpd的日誌切割: nginx
/var/log/httpd/*log { missingok notifempty sharedscripts delaycompress postrotate /sbin/service httpd reload > /dev/null 2>/dev/null || true endscript }
而後能夠利用crond定時任務來執行,
50 23 * * * /usr/sbin/logrotate -f /root/tomcatslog
這樣就OK了。 shell
Nginx日誌切片的核心是:
/bin/kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` centos
這個會從新生成日誌,其實咱們只要在這以前把原來的日誌文件mv到其它地方或都用logrotate進行管理均可以。
tomcat
/usr/local/nginx/logs/*.log { rotate 30 daily dateext copytruncate #notifempty missingok sharedscripts postrotate /bin/kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` endscript }
這裏有個postrotate其實還有prerotate。
prerotate是切割管理前執行的腳本,postrotate是切割後進執行的腳本。
nginx須要在切割後再執行kill -USR1 `cat /usr/local/nginx/log/nginx.pid`從新生成日誌,若是直接mv什麼的會由於nginx進程一直在內存中因此一直等待。 post
再粘貼點logrotate的經常使用參數: spa
daily指定轉儲週期爲天天 weekly指定轉儲週期爲每週 monthly指定轉儲週期爲每個月 dateext在文件末尾添加當前日期 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轉儲後的日誌文件和當前日誌文件放在同一個目錄下 rotate count指定日誌文件刪除以前轉儲的次數,0 指沒有備份,5 指保留5 個備份 tabootext [+] list讓logrotate 不轉儲指定擴展名的文件,缺省的擴展名是:.rpm-orig, .rpmsave, v, 和 ~ size size當日志文件到達指定的大小時才轉儲,Size 能夠指定 bytes (缺省)以及KB (sizek)或者MB (sizem). prerotate/endscript在轉儲之前須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行 postrotate/endscript在轉儲之後須要執行的命令能夠放入這個對,這兩個關鍵字必須單獨成行
最多見的執行參數爲:--v 詳細 -f 強制. 日誌
/usr/sbin/logrotate -f /root/tomcatslog
若是是放在/etc/crond.daily或都crond.weekly等之類的必定要注意,系統執行的時間。
由於centos6的crond.daily之類的都不是有crond在控制執行而是有anacrond來管理,其差異本身去baidu瞭解。因此若是是天天定時的話。仍是交給crontab吧。 code