1、說明
隨着時間的增加,nginx 的訪問日誌會越來越大,下圖是新部署的線上 zabbix 監控網站運行了十幾天左右產生的訪問日誌達到213M。
所以必須進行日誌分割,要求如下:
1、每天的日誌單獨生成一個文件
2、保留30天的訪問日誌
2、編寫腳本
vim /usr/local/nginx/logs/nginx_log_rotate.sh
#! /bin/bash
logs_path="/usr/local/nginx/logs/" log_name="access.log" pid_path="/usr/local/nginx/logs/nginx.pid"
#日誌文件集中存放的路徑 [ -d /usr/local/nginx/logs/access_log ] || mkdir /usr/local/nginx/logs/access_log access_logs_path="/usr/local/nginx/logs/access_log/"
#移動日誌 mv ${logs_path}${log_name} ${access_logs_path}$(date --date="yesterday"+"%Y-%m-%d")_${log_name}
#生成新的access.log文件 kill -USR1 `cat ${pid_path}`
#刪除一個月之前的日誌 cd ${access_logs_path} find . -ctime +30 -name "*access.log" |xargs rm -f exit 0 |
腳本增加可執行權限
chmod a+x /usr/local/nginx/logs/nginx_log_rotate.sh
每天凌晨運行腳本
crontab -e
00 00 * * * /usr/local/nginx/logs/nginx_log_rotate.sh |
重啓crond服務
service crond restart
運行腳本會生成 access_log 文件夾,下圖是到今天爲止的所有日誌
本文轉自M四月天 51CTO博客,原文鏈接:http://blog.51cto.com/msiyuetian/1880769,如需轉載請自行聯繫原作者