Nginx執行日誌自動切割
阿新 • • 發佈:2019-02-02
所謂自動分割Nginx日誌檔案,就是指Rotate Nginx log files,即讓Nginx每天(或每個星期,可自定義控制)生成一個日誌檔案,而不是將Nginx所有的執行日誌都放置在一個檔案中,這樣每個日誌檔案都相對較小,定位問題也更容易。
現在以一個Nginx例項為例,可以寫一個指令碼來實現自動分割Nginx日誌
1、編寫自動分割Nginx日誌指令碼
:wq儲存,並命名為nginxLogRotate.sh,儲存到目錄/usr/local/nginx/logs#!/bin/bash #Rotate the Nginx logs to prevent a single logfile from consuming too much disk space. LOGS_PATH=/usr/local/nginx/logs YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log ## 向 Nginx 主程序傳送 USR1 訊號。USR1 訊號是重新開啟日誌檔案 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
2、設定Linux定時任務
vi /etc/crontab
在開啟的檔案底部新增如下內容
0 0 * * * root /usr/local/nginx/logs/nginxLogRotate.sh
:wq儲存,表示配置一個定時任務,定時每天00:00以root身份執行指令碼/usr/local/nginx/logs/nginxLogRotate.sh,實現定時自動分割Nginx日誌(包括訪問日誌和錯誤日誌)
至此,就實現了自動分割Nginx日誌,Nginx每天都會生成一個新的日誌檔案。