nginx日志切割压缩保存

Nginx每天会产生大量的访问日志,而且有些要求保留几个月的日志以便分析,如果不加入自动切割压缩,存储空间很快会被撑爆

下面用shell脚本配合计划任务crontab对nginx日志进行自动切割压缩

vim cut_nginx_log.sh

#!/bin/bash
year=`date +%Y`
month=`date +%m`
day=`date +%d`
rq=`date +%Y%m%d`

pid_path="/software/nginx/logs/nginx.pid"
logs_backup_path="/software/nginx/logs/$year$month"
logs_path="/software/nginx/logs/"
logs_access="1.access.log 2.access.log 3.access.log 4.access.log 5.access.log" #nginx代理多个项目,每个项目日志保存到不同日志文件,所以分开写

[ -d $logs_backup_path ]||mkdir -p $logs_backup_path   #按月命名创建文件夹

for i in ${logs_access}   #for循环去处理上面每个项目的日志文件
do
	mv ${logs_path}${i} ${logs_backup_path}/${i}.${rq}   #把日志移到相应月份文件夹去处理
	kill -USR1 $(cat /software/nginx/logs/nginx.pid)    #根据ng进程号,发个USR1信号重新加载配置创建日志文件,平滑实现不停ng
	tar -zcvf ${logs_backup_path}/${i}.${rq}.tar.gz ${logs_backup_path}/${i}.${rq} #压缩日志节省存储空间
	rm -rf ${logs_backup_path}/${i}.${rq}   #删除处理完的日志
done

echo "Done"

把上面脚本赋予执行权限然后加入计划任务,每天凌晨运行处理

chmod +x cut_nginx_log.sh

crontab -e  =>  00 00 * * * /bin/bash /software/nginx/logs/cut_nginx_log.sh

crontab -l  =>  查看计划任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值