Linux下定时切割Nginx访问日志并打包压缩的Shell脚本

之前写过这篇文章,但是由于上次的数据丢失故障这篇日志没有了。于是我又重新写了这个脚本,再次贴出来,给大家。

#!/bin/bash
logs_path=/home/logs/www/
arch_log_path=${logs_path}$(date -d "yesterday" +"%Y%m/%d")/

mkdir -p ${arch_log_path}
cd ${logs_path}
for i in `ls *.access.log`
do
        tar zcf ${i}.tar.gz -C ${logs_path} ${i}
        mv ${i}.tar.gz ${arch_log_path}
        rm -rf ${i}
done

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


使用时注意修改logs_path为你自己的Nginx访问日志目录。我的Nginx是按照虚拟主机分列访问日志的,每个日志文件的格式如localhost.access.log,该脚本会匹配日志目录下的所有*.access.log文件,打包压缩后移动到 年月/日 目录下面。大家可以根据自己需要再行调整。设置成功后在crontab里面加入定时计划。

sudo crontab -e

启动VI编辑器,输入以下内容:

 0 0 * * * /path/to/cut_nginx_log.sh

其中最后一部分请修改成你的切割脚本所在的路径。定时器设定在每天0时归档昨天的日志。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值