nginx日志切割备忘

实际应用:
shell+定时任务+nginx信号管理,完成日志按日期存储
分析思路:
凌晨00:00:01,把昨天的日志重命名,放在相应的目录下,再USR1信息号控制nginx重新生成新的日志文件

1、在nginx.conf文件的server代码块下添加access.log的相关代码,代码如下:

     server {
        listen 81;  #监听端口
        server_name xxx.com; #监听域名

        location / {
                root oa.com;   #根目录定位
                index index.html;
        }
        access_log logs/xxxx.access.log ;//这段是关键,xxx自定义
    }

2、在根目录创建data文件夹,即/data/。
在其中创建shell脚本:runlog.sh。代码如下:

#nginx日志切割脚本
#!/bin/bash

#原始日志文件存放目录
LOGPATH=/usr/local/nginx/logs/oa.access.log

#设置日志文件存放目录,按年,月命名
BASEPATH=/data/$(date -d yesterday +%Y%m)

#创建文件夹
mkdir -p $BASEPATH

#按日,市,分拼接日志名称
bak=$BASEPATH/$(date -d yesterday +%d%H%M).oa.access.log

#移动文件并且创建新的日志文件
mv $LOGPATH $bak
touch $LOGPATH
#发送消息
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

3、定时任务
Crontab 编辑定时任务
01 00 * * * /xxx/path/b.sh 每天0时1分(建议在02-04点之间,系统负载小)–(path是脚本路径,b为脚本名称),命令为:

01 00 * * * /data/runlog.sh
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值