1、說明
随着時間的增加,nginx 的通路日志會越來越大,下圖是新部署的線上 zabbix 監控網站運作了十幾天左右産生的通路日志達到213M。
<a href="http://s5.51cto.com/wyfs02/M00/8B/49/wKioL1hJDW2AYqn8AAA0SQ0ucqY181.png" target="_blank"></a>
是以必須進行日志分割,要求如下:
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 檔案夾,下圖是到今天為止的所有日志
<a href="http://s5.51cto.com/wyfs02/M02/8B/49/wKioL1hJEAqSE7H6AABooLD1hZY944.png" target="_blank"></a>
本文轉自M四月天 51CTO部落格,原文連結:http://blog.51cto.com/msiyuetian/1880769,如需轉載請自行聯系原作者