nginx日志分割(linux定时器定时分割)

前言

        nginx安装目录下的logs文件夹下,主要有三个文件,access.log,error.log,nginx.pid。

        其中access.log和error.log是nginx的默认日志文件,如果没有配置策略,nginx一直跑,这两个文件会变得越来越大,不易管理。因此可以将日志文件进行分割,一个月分割一次,或一天分割一次。

        主要技术:shell + linux定时器 + nginx日志文件重开

场景

        主要实现:每隔1分钟,将access文件重新生成一个文件,保存在一个生成的文件夹下。

nginx日志重开

        主要用到nginx的-usr1信号

        usr1 : reopen the log files 重新打开日志文件

kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

linux定时器

        通过crontab命令设置,秒 分 时 日 月 周

 crontab -e

        我们这里设置为

*/1 * * * * sh /opt/log/s.sh

shell脚本

#! /bin/bash
base_path='/usr/local/nginx/logs'
log_path=$(date -d yesterday +"%Y%m")
minute=$(date -d "1 minute ago" +"%Y%m%d-%H:%M")

mkdir -p $base_path/$log_path
echo $base_path/access.log
mv $base_path/access.log $base_path/$log_path/access_$minute.log
echo $base_path/$log_path/access_$minite.log
kill -USR1 `cat /usr/local/nginx/logs/nginx.pid`

        写shell脚本最为重要的就是注意空格,换行。不然很容易出现莫名其妙的错误。

        按照上面设置好了之后,每个1分钟,会生成一个日志文件

-rw-r--r-- 1 nobody root 4248 Jul 17 22:01 access_20180717-22:00.log
-rw-r--r-- 1 nobody root 6136 Jul 17 22:02 access_20180717-22:01.log
-rw-r--r-- 1 nobody root 6136 Jul 17 22:03 access_20180717-22:02.log
-rw-r--r-- 1 nobody root 6136 Jul 17 22:04 access_20180717-22:03.log
-rw-r--r-- 1 nobody root 6136 Jul 17 22:05 access_20180717-22:04.log
-rw-r--r-- 1 nobody root 5900 Jul 17 22:07 access_20180717-22:06.log
-rw-r--r-- 1 nobody root 5782 Jul 17 22:08 access_20180717-22:07.log
-rw-r--r-- 1 nobody root 5782 Jul 17 22:09 access_20180717-22:08.log
-rw-r--r-- 1 nobody root 6254 Jul 17 22:10 access_20180717-22:09.log

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值