nginx本身不带日志分割,日志分割有很多总方法。最近我做的主要是通过sh脚本执行。
思路:
1.首先确定nginx日志存放路径。
2.通过sh脚本创建前一天日期的文件名文件。
3.拷贝日志文件到新创建的文件中。
3.通过crontab命令,每天0点执行。
这总方法比较简单,而且不会浪费nginx系统资源。
具体代码:
sh脚本:
创建sh脚本文件
cut_log.sh:
LOG_PATH="/nginx/logs" RECORD_TIME=$(date -d "yesterday" +%Y-%m-%d) PID=/nginx/logs/nginx.pid mv $LOG_PATH/access.log $LOG_PATH/access.$RECORD_TIME.log mv $LOG_PATH/error.log $LOG_PATH/error.$RECORD_TIME.log kill -USR1 `cat $PID
LOG_PATH : 日志文件路径
RECORD_TIME:前一天的时间,用户创建日期格式的文件。
PID:nginx的log,pid文件。主要用于重新启动日志使用。 文件路径可以在nginx.conf里面找到。
kill:重新启动nginx日志。
目前为止脚本文件已经完成。 需要把脚本文件修改成可执行文件
命令:
chmod 755 cut_log.sh
还差最后一步,使用crontab命令让系统每天0点自动执行。
crontab -e 0 0 * * * /crontabTask/cut_log.sh
crontabTask是我存放cut_log.sh路径。 你存放的路径不一样,相应的修改。
当输入:crontab -e后,输入0 0 * * * /crontabTask/cut_nginx_log.sh 记得点wq保存退出。
执行:
crontab -l
可以查看到刚刚添加的执行任务。
最后推荐一个私活网站:
IT外包
有时间可以看看赚一些外快。 PS.如果有好平台大家可以推荐给我。感谢了。
原文:https://www.cnblogs.com/sybo/p/14682585.html