logrotate實(shí)現(xiàn)日志切割方式(轉(zhuǎn)儲)
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 ? ? ? ? ? ? ? ? ? ? ?#在日志輪循期間,任何錯(cuò)誤將被忽略,例如“文件無法找到”之類的錯(cuò)誤 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)錯(cuò) 文件不再同一個(gè)用戶組下
分割日志時(shí)報(bào)錯(cuò):
: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è)參考,也希望大家多多支持腳本之家。
相關(guān)文章
linux如何使用date命令獲取系統(tǒng)時(shí)間
這篇文章主要介紹了linux如何使用date命令獲取系統(tǒng)時(shí)間問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01centos6.5 安裝hadoop1.2.1的教程詳解【親測版】
這篇文章主要介紹了centos6.5 安裝hadoop1.2.1的教程詳細(xì),該教程小編親測過,非常不錯(cuò),值得推薦給大家,需要的朋友可以參考下2018-08-08在 CentOS 8/RHEL 8 上安裝和使用 Cockpit的方法
Cockpit 是一個(gè)基于 Web 的服務(wù)器管理工具,可用于 CentOS 和 RHEL 系統(tǒng)。最近發(fā)布的 CentOS 8 和 RHEL 8,其中 cockpit 是默認(rèn)的服務(wù)器管理工具。這篇文章主要介紹了在 CentOS 8/RHEL 8 上安裝和使用 Cockpit的方法,需要的朋友可以參考下2019-10-10CentOS 7中搭建NFS文件共享存儲服務(wù)的完整步驟
如果僅僅只是希望搭建一個(gè)linux之間進(jìn)行文件共享的服務(wù)器,而不是所有異構(gòu)的系統(tǒng)之間共享的話,nfs是一個(gè)不錯(cuò)的選擇。下面這篇文章主要給大家介紹了關(guān)于在CentOS 7中搭建NFS文件共享存儲服務(wù)的完整步驟,需要的朋友可以參考下2018-11-11