nginx按天分割日志nginxapachenginxphpnginxrewrite
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了nginx按天分割日志nginxapachenginxphpnginxrewrite,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2132字,纯文字阅读大概需要4分钟。
内容图文
![nginx按天分割日志nginxapachenginxphpnginxrewrite](/upload/InfoBanner/zyjiaocheng/160/d8a40732ac7e4201845905016b18ffd2.jpg)
而且并没有提供一个可配置的地方,对于生产环境,日志都集中在一块儿,没过几天日志文件就可以大到几个G,只能是使用操作系统的定时任务,自己写脚本定时执行,将log日志进行切割。
参考网上前辈的文章,自己写了一个脚本出来。代码如下:
#定义日志的源路径,即nginx的默认log路径source_log_path=/usr/local/nginx/logs
#定义保存后的路径位置
dest_log_path=/opt/logs/nginx
#定义log文件的名称,以每天为单位,定义日志的前缀为昨天的日期,因为定时任务拟在凌晨零点后执行。
yesterday=$(date -d"yesterday" +%Y%m%d)
#echo ${yesterday}#rm -rf ${dest_log_path}/*#指定移动
mv ${source_log_path}/access.log ${dest_log_path}/nginx_access_${yesterday}.log
mv ${source_log_path}/error.log ${dest_log_path}/nginx_error_${yesterday}.log
#移动后,重新向nginx的主进程发送信息,令nginx的主进程将日志重新打开。否则日志将会继续写到mv后的路径中
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
cd${dest_log_path}#进入日志的路径,查询前天前的日志,然后将其删掉。
find . -mtime +7 -name "*20[1-9][3-9]*" |xargs rm -rf
exit0
最后,将该代码保存到一个sh文件,并将该文件加入到系统的定时任务中。
#定时任务的文件在 /etc/crontab 下,vi此文件,设置为每天 零点 执行。
0 0 * * * root /bin/sh /opt/sampleEnvironment/commands/nginxlogperday.sh
代码其实并不复杂。但是在写的时候还是花费了太多时间,
遇到的问题是:在定义完变量后,比如source_log_path 执行该脚本,即会报错 command not found
到最后才发现, 我在定义 source_log_path 的时候 是这样写的 :
source_log_path = /usr/local/nginx/log
在等号两边均敲了一个空格,这样就导致了上面的错误。在定义日期变量的时候,也是如此。
平时使用vi命令的时候,仅仅就停留在入门的阶段,几乎不会几个命令。最多就知道“dd” 。
这次需要编辑的时候,才发现多么费劲。这次使用的比较多的命令是:
删除一行: dd
移动到行末尾: $
移动到行末尾并编辑: A (或者shift + a)
移动到文档的末尾: shift + g
以上就介绍了nginx 按天分割日志,包括了nginx方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
内容总结
以上是互联网集市为您收集整理的nginx按天分割日志nginxapachenginxphpnginxrewrite全部内容,希望文章能够帮你解决nginx按天分割日志nginxapachenginxphpnginxrewrite所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。