nginx 日志分割

nginx本身不带日志分割,日志分割有很多总方法。最近我做的主要是通过sh脚本执行。 

思路:

1.首先确定nginx日志存放路径。

2.通过sh脚本创建前一天日期的文件名文件。

3.拷贝日志文件到新创建的文件中。

3.通过crontab命令,每天0点执行。 

这总方法比较简单,而且不会浪费nginx系统资源。

具体代码:

sh脚本:

vim cut_log.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外包

http://itwaibao.com

有时间可以看看赚一些外快。 PS.如果有好平台大家可以推荐给我。感谢了。

原文地址:https://www.cnblogs.com/sybo/p/14682585.html