nginx日志存储access日志和error保留180天,每晚把前一天的日志文件压缩成tar.gz

logrotate日志分割时,rotate参数是必须要加的

在logrotate的配置文件中,rotate参数用于指定保留的旧日志文件数量。如果不配置rotate参数,默认是0个,也就是只允许存在一份日志,刚切分出来的日志会马上被删除‌

logrotate 配置

/usr/local/nginx-24/logs/*.log
{
 daily

rotate 180
 missingok
 copytruncate
 nocompress
 create
 dateext
 dateformat -%Y-%m-%d
 olddir /usr/local/nginx-24/logs/logbak
 sharedscripts
 postrotate
     /usr/local/nginx-24/compress_targz_nginx_logs.sh
 endscript
}

compress_targz_nginx_logs.sh 配置

#!/bin/sh

# 日志目录
BACKUP_DIR="/usr/local/nginx-24/logs/logbak"

# 获取前一天的日期
#YESTERDAY=$(date -d "yesterday" +"%Y-%m-%d")
TODAY=$(date +"%Y-%m-%d")
# 创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR

# 创建 tar.gz 文件
tar -czf $BACKUP_DIR/nginx_logs_$TODAY.tar.gz -C $BACKUP_DIR --exclude='*.gz' access.log-$TODAY error.log-$TODAY

mv $BACKUP_DIR/*.log-$TODAY $BACKUP_DIR/temp
#rm -rf $BACKUP_DIR/*.log-$TODAY

# 切换到包含.tar.gz文件的目录
cd /usr/local/nginx-24/logs/logbak

# 使用ls命令按修改时间排序,然后列出文件名
# 保留最新的180个文件名
# 最后使用xargs rm命令删除这些文件
ls -t *.tar.gz | tail -n +181 | xargs -d '\n' rm -f --
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值