前幾天看nginx日誌,發現日誌文件發現愈來愈大。下載分析很是不方便,因此打算按天對其進行切割,使用shell腳本方式進行切割。nginx
當前使用Nginx安裝到了/usr/local/nginxshell
在/usr/local/nginx/logs上建立一個shell文件,命名爲:nginxLogRotate.sh。bash
執行如下命令:spa
cd /usr/local/nginx/logs vi nginxLogRotate.sh
nginxLogRotate.sh文件內容:調試
## 日誌存放路徑 LOGS_PATH=/usr/local/nginx/logs ## 獲取當天日期,用於日誌文件名上 YESTERDAY=$(date -d "yesterday" +%Y-%m-%d) ## 移動access.log日誌,並修改命名 mv ${LOGS_PATH}/access.log ${LOGS_PATH}/access_${YESTERDAY}.log ## 移動error.log日誌,並修改命名 mv ${LOGS_PATH}/error.log ${LOGS_PATH}/error_${YESTERDAY}.log ## 向 Nginx 主進程發送 USR1 信號。USR1 信號是從新打開日誌文件 kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid)
注意,建立完成文件以後須要配置一下文件權限,執行如下命令就能夠日誌
chmod 777 nginxLogRotate.sh
執行如下命令配置自動調度code
crontab -e
在自動調度中配置如下信息blog
#天天16點50分執行 /usr/local/nginx/logs/nginxLogRotate.sh腳本 50 16 * * * bash /usr/local/nginx/logs/nginxLogRotate.sh
經過以上配置就完成了Nginx日誌自動切割,天天下載16點50分自動切割,也能夠根據本身的須要本身配置時間,天天會產生一個當天日誌的日誌。進程