nginx日志分隔方式

一、通过系统自带的logrotate工具自动轮转切割–→ 修改/etc/logrotate.d/nginx 里参数文件

vim /etc/logrotate.d/nginx
	/var/log/nginx/*.log {           #指定需要轮转处理的日志文件
    daily     #日志文件轮转周期,可用值为: daily/weekly/yearly
    missingok               # 忽略错误信息
    rotate 7               # 轮转次数,即最多存储7个归档日志,会删除最久的归档日志
    minsize 5M	       #限制条件,大于5M的日志文件才进行分割,否则不操作
    dateext             # 以当前日期作为命名格式
    compress         # 轮循结束后,已归档日志使用gzip进行压缩
    delaycompress    # 与compress共用,最近的一次归档不要压缩
    notifempty         # 日志文件为空,轮循不会继续执行
    create 640 nginx nginx     #新日志文件的权限
    sharedscripts     #有多个日志需要轮询时,只执行一次脚本
    postrotate    # 将日志文件转储后执行的命令。以endscript结尾,命令需要单独成行
            if [ -f /var/run/nginx.pid ]; then    #判断nginx的PID。# 默认logrotate会以root身份运行
                    kill -USR1 cat /var/run/nginx.pid      #重新生成一个日志文件
            fi
    endscript
	}

########################################################
修改完上面配置后手动切割 :/usr/sbin/logrotate -f /etc/logrotate.conf #执行完后就立马切割,可以利用计划任务自动求个
crontab -e #执行后添加如下:
59 23 * * * /usr/sbin/logrotate -f /etc/logrotate.conf #时间可以自己定义
二、通过shell脚本+计划任务自动切割

vim /root/nginx_log.sh

#!/usr/bin/bash
date=date "+%F"
mv /var/log/nginx/access.log /var/log/nginx/access. d a t e m v / v a r / l o g / n g i n x / e r r o r . l o g / v a r / l o g / n g i n x / e r r o r . date mv /var/log/nginx/error.log /var/log/nginx/error. datemv/var/log/nginx/error.log/var/log/nginx/error.date

if [ -f /var/run/nginx.pid ];then
kill -USR1 cat /var/run/nginx.pid #这个命令可换成nginx -s reload 只实现了能切割,在生成是否会宕机未知
fi
########这里的脚本只做到切割日志,压缩等未实现,可以自己加###########
crontab -e #执行后添加如下:
59 23 * * * /usr/bin/bash /root/nginx_log.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值