nginx日志切割

本文介绍了一个用于Nginx服务器日志轮转的Shell脚本,包括自动移动旧日志文件、压缩及定期删除超过10天的日志。通过Cron定时任务实现自动化管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 编辑脚本

    说明:date -d "-1 day" 表示昨天; %F表示年月日以Y%-m%-d形式;[-d ]表示判断是否有这个目录,如果没有就或关系,创建该目录;将每日的access.log文件挪到创建的目录/tmp/nginx_log/中,并命名为d变量的格式;reload用于重新生成acces.log,并重定向清空;考虑到切割的日志比较大,gzip -f判断日志是否存在,如果存在,则进行强制压缩(如果一天执行多次,该文件已经存在并压缩过,则会同名,-f覆盖不提示)


   vim /usr/local/sbin/nginx_logrotate.sh

1
2
3
4
5
6
7
8
#! /bin/bash
# author by huangzhenping
d=`date -d "-1 day" +%F`
[ -d /tmp/nginx_log ] || mkdir /tmp/nginx_log
mv /tmp/access.log /tmp/nginx_log/$d.log
/etc/init.d/nginx reload > /dev/null
cd /tmp/nginx_log/
gzip -f $d.log



2. 日志切割脚本加入crond任务计划列表

1
0 0 * * * /bin/bash /usr/local/sbin/nginx_logrotate.sh


3. 定期删除日志,crond计划列表

1
0 0 * * * find /tmp/nginx_log/ -type f -mtime +10 |xargs rm










本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1900654,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值