nginx的access.log总是记录很多东西,一两天就变成几十M,如果长时间下去,日志文件会很大很大。所以要分割日志:
vim /wp-content/local/nginx/sbin/cut_nginx_log.sh
输入
#!/bin/bash # This script run at 00:00 # The Nginx logs path logs_path="/home/vhosts/" # Nginx logs names here logs_names=(default phpmyadmin) #mkdir -p ${logs_path}$(date -d "yesterday" +"%Y")/$(date -d "yesterday" +"%m")/ num=${#logs_names[@]} for((i=0;i<num;i++));do mv ${logs_path}${logs_names[i]}/logs/access.log ${logs_path}${logs_names[i]}/logs/$(date -d "yesterday" +"%Y%m%d")_access.log old=${logs_path}${logs_names[i]}/logs/$(date -d "8 days ago" +"%Y%m%d")_access.log if [ -f ${old} ]; then rm ${old}; fi done kill -USR1 `cat /wp-content/local/nginx/logs/nginx.pid`
然后赋予其权限:
chmod a+x /wp-content/local/nginx/sbin/cut_nginx_log.sh
加入到crontab计划任务:
crontab -u root -e
0 0 * * * /wp-content/local/nginx/sbin/cut_nginx_log.sh
CTRL+X保存文件。
有些vps需要重启contab:
/etc/init.d/cron restart
这样 就行了。
转载请注明:爱开源 » nginx 分割日志