加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux中NGINX日志切割和定时删掉旧日志例子

发布时间:2023-07-21 12:56:14 所属栏目:Linux 来源:
导读:对于web服务器日志切割是一个非常重要的日常事情了,但有很多的朋友对于日志切割处理不好或不知道如何处理,下文php粉丝网小伙伴就给各位整理一篇志切割和定时删除旧日志例子.在nginx日志切割方面,我的方法和其他人用的

对于web服务器日志切割是一个非常重要的日常事情了,但有很多的朋友对于日志切割处理不好或不知道如何处理,下文php粉丝网小伙伴就给各位整理一篇志切割和定时删除旧日志例子.

在nginx日志切割方面,我的方法和其他人用的方法有一些不一样,但对于我这种方法,如果有人觉得不好,可以给我提出,谢谢.

nginx日志切割,我是直接写的一个简单的shell实现的,内容如下:

mv /usr/local/nginx/logs/abc.log /www/logbak/abc`date +%Y%m%d%H%M`.log 

/usr/local/nginx/sbin/nginx -s reload 

这样执行以后,就会在/www/logbak目录下生成日志文件,你可以在/etc/crontab 里把执行这个shell的任务写上去,可以一小时执行一次,也可以每天执行一次,也可以一周执行一次,这个就看自己的需要了.

我这里是每天早上8点执行,生成的文件格式是这样的:abc201111090801.log,所以我就根据文件的规律,找到删除日志文件的方法,代码如下:

rm -f /www/logbak/abc`date '+%Y%m%d' -d ' -10 day'`*.log

这个也写到shell脚本里,然后每天执行一次,每天就回去/www/logbak目录里找当前时间之前10天的文件,并删除.

再补充一个例子:

1.定义日志轮滚策略,代码如下:

# vim nginx-log-rotate 

/data/weblogs/*.log { 

    nocompress 

    daily 

    copytruncate 

    create 

    notifempty 

    rotate 7 

    olddir /data/weblogs/old_log 

    missingok 

    dateext 

    postrotate 

        /bin/kill -HUP `cat /var/run/nginx.pid 2> /dev/null` 2> /dev/null || true 

    endscript  //Cuoxin.com 

[warning]/data/weblogs/*.log使用通配符时,/data/weblogs/目录下的所有匹配到的日志文件都将切割,如果要切割特定日志文件,就指定到该文件.[/warning]

2.设置计划任务,代码如下:

# vim /etc/crontab 

59 23 * * * root ( /usr/sbin/logrotate -f /PATH/TO/nginx-log-rotate) 

这样每天23点59分钟执行日志切割.

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章