1. 程式人生 > >使用logrotate管理nginx日誌檔案

使用logrotate管理nginx日誌檔案

描述:linux日誌檔案如果不定期清理,會填滿整個磁碟。這樣會很危險,因此日誌管理是系統管理員日常工作之一。我們可以使用”logrotate”來管理linux日誌檔案,它可以實現日誌的自動滾動,日誌歸檔等功能。下面以nginx日誌檔案來講解下logrotate的用法。

配置:
1、在/etc/logrotate.d目錄下建立一個nginx的配置檔案”nginx”配置內容如下

vim /etc/logrotate.d/nginx

/usr/local/nginx/logs/*.log {
daily
rotate 5
missingok
notifempty
sharedscripts
postrotate
if [ -f /usr/local/nginx/logs/nginx.pid ]; then
kill -USR1 cat /usr/local/nginx/logs/nginx.pid


fi
endscript
}

儲存退出。

2、執行logrotate

/usr/sbin/logrotate -f /etc/logrotate.d/nginx

在/usr/local/nginx/logs目錄中會產生
error.log
error.log.1
說明logrotate配置成功。

3、讓logrotate每天進行一次滾動,在crontab中新增一行定時指令碼。

crontab -e

59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.d/nginx

每天23點59分進行日誌滾動

4、配置檔案說明
daily:日誌檔案每天進行滾動
rotate:保留最5次滾動的日誌
notifempty:日誌檔案為空不進行滾動
sharedscripts:執行postrotate指令碼
下面是一個指令碼

postrotate
if [ -f /usr/local/nginx/logs/nginx.pid ]; then
kill -USR1 cat /usr/local/nginx/logs/nginx.pid
fi
endscript

指令碼讓nginx重新生成日誌檔案。