logrotate日志輪轉


1)基本介紹

適合應用服務日志,系統日志按天切割
如果沒有日志輪轉,日志文件會越來越大
將丟棄系統中最舊的日志文件,以節省空間
logrotate本身不是系統守護進程,它是通過計划任務crond每天執行

# cat /etc/cron.daily/logrotate 
#!/bin/sh
/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf		//日志輪轉,按照/etc/logrotate.conf
注釋:/var/lib/logrotate/logrotate.status 是輪轉記錄
/usr/sbin/logrotate -f /etc/logrotate.conf		//強制輪轉日志,主要用於測試
	/usr/sbin/logrotate -f /etc/logrotate.d/httpd  	//具體的服務日志輪轉

2)配置文件

logrotate配置文件
/etc/logrotate.conf			//決定每個日志文件如何輪轉
/etc/logrotate.d/* 

3)配置文件詳解

# egrep -v "^$|^#" /etc/logrotate.conf 
==================全局設置==================
weekly								//輪轉周期,一周輪轉
rotate 4							//保留4份
create								//輪轉后創建新文件
dateext								//使用日志作為后綴
compress							//是否壓縮
include /etc/logrotate.d 			//包含該目錄下的文件
/var/log/wtmp {						//對該日志文件設置輪轉的方法
    monthly							//一個月輪轉一次
    create 0664 root utmp			//輪轉后創建新文件,並設置權限
	minsize 1M						//最小達到1M才輪轉
    rotate 1						//保留一份
}
/var/log/btmp {
    missingok						//丟失不提示
    monthly
    create 0600 root utmp
    rotate 1
}

4)httpd服務日志輪轉

#vim  /etc/logrotate.d/httpd
/var/log/httpd/*log {
    missingok
    notifempty				//即使日志文件為空文件也做輪轉,這個是logrotate的缺省選項。
    sharedscripts		//運行postrotate腳本,作用是在所有日志都輪轉后統一執行一次腳本。如果沒有配置這個,那么每個日志輪轉后都會執行一次腳本
    delaycompress		//延遲壓縮
    postrotate			//在logrotate轉儲之后需要執行的指令,例如重新啟動 (kill -HUP) 某個服務!必須獨立成行
        /bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
    endscript
}
#/usr/sbin/logrotate -f /etc/logrotate.conf		//強制輪轉日志
#ll /var/log/httpd/access* 						//發現日志已經被切割了

5)nginx 服務日志輪轉

cat /etc/logrotate.d/nginx
/usr/local/nginx/logs/*log {
    daily
    rotate 365
    missingok
    notifempty
    compress
    dateext
    sharedscripts
    postrotate
    /usr/local/nginx/sbin/nginx reload
    endscript
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM