logrotate實(shí)現(xiàn)日志切割方式(轉(zhuǎn)儲)
目錄
- logrotate日志切割(轉(zhuǎn)儲)
- 背景
- 日志切割配置文件/etc/logrotate.conf
- 設(shè)置定時(shí)任務(wù)
- logrotate日志切割報(bào)錯 文件不再同一個(gè)用戶組下
- 總結(jié)
logrotate日志切割(轉(zhuǎn)儲)
背景
系統(tǒng)每天凌晨1:59查看/data/nginx/log日志文件的大小,如果小于10M,不做任何處理,如果大于等于10M,觸發(fā)日志轉(zhuǎn)儲,
轉(zhuǎn)儲后/data/nginx/log的大小為0,并且會在/data/nginx/logs/下生成一個(gè)通過gzip壓縮的以當(dāng)前日期命名的.gz文件
注意:該配置算不上是日志切割,因?yàn)楫?dāng)日志文件為25M時(shí),也會歸檔為一個(gè)文件,并不是以10M為單位進(jìn)行分割,只能稱為日志轉(zhuǎn)儲。
日志切割配置文件/etc/logrotate.conf
cat > /etc/logrotate.conf << EOF /data/nginx/log { ? ? missingok ? ? notifempty ? ? create 0640 root root ? ? compress ? ? dateext ? ? olddir /data/nginx/logs/ ? ? rotate 50 ? ? size 10M } EOF
相關(guān)解釋:
/data/nginx/log ? ? ? ? ? ? ? ?#表示要做切割的日志文件名 missingok ? ? ? ? ? ? ? ? ? ? ?#在日志輪循期間,任何錯誤將被忽略,例如“文件無法找到”之類的錯誤 notifempty ? ? ? ? ? ? ? ? ? ? #如果日志文件為空,輪循不會進(jìn)行 create 0640 root root ? ?? ? ? #以指定的權(quán)限創(chuàng)建全新的日志文件 compress ? ? ? ? ? ? ? ? ? ? ? #在輪循任務(wù)完成后,使用gzip壓縮歸檔文件 dateext ? ? ? ? ? ? ? ? ? ? ? ?#使用當(dāng)前日期作為歸檔文件的命名格式 olddir /data/nginx/logs/ ? ? ? #指定歸檔文件存放到/data/nginx/logs/目錄下,/data/nginx/logs/需提前創(chuàng)建 rotate 50 ? ? ? ? ? ? ? ? ? ? ?#最多存儲50個(gè)歸檔文件,當(dāng)生成第51個(gè)歸檔文件時(shí),第1個(gè)會被刪除 size 10M ? ? ? ? ? ? ? ? ? ? ? #當(dāng)監(jiān)聽文件達(dá)到10M時(shí)進(jìn)行切割歸檔
設(shè)置定時(shí)任務(wù)
echo "59 01 * * * /usr/sbin/logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log" >> /var/spool/cron/root crond start
logrotate日志切割報(bào)錯 文件不再同一個(gè)用戶組下
分割日志時(shí)報(bào)錯:
:error: skipping "/var/log/nginx/test.access.log" because parent
directory has insecure permissions (It's world writable or writable by
group which is not "root") Set "su" directive in config file to tell
logrotate which user/group should be used for rotation.
xx 文件所屬用戶
添加“su root xx”到/etc/logrotate.d/nginx文件中即可
如下:
/var/log/nginx/*.log { su root public daily missingok rotate 52 compress delaycompress notifempty #ifempty create 0640 www-data adm sharedscripts postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` endscript }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。
