linux nginx访问日志按天切割备份 并保留最近10天备份文件

#!/bin/bash

# Set the log directory and file names
LOG_DIR=/var/log/nginx/
ACCESS_LOG_FILE=access.log
ERROR_LOG_FILE=error.log

# Get the current date in the format yyyy-mm-dd
CURRENT_DATE=$(date +"%Y-%m-%d")

# Create the log files if they don't exist
if [ ! -f "$LOG_DIR$ACCESS_LOG_FILE" ]; then
  touch "$LOG_DIR$ACCESS_LOG_FILE"
fi

if [ ! -f "$LOG_DIR$ERROR_LOG_FILE" ]; then
  touch "$LOG_DIR$ERROR_LOG_FILE"
fi

# Rotate the access log file if the date has changed
if [ "$CURRENT_DATE" != "$(date -r "$LOG_DIR$ACCESS_LOG_FILE" +"%Y-%m-%d")" ]; then
  mv "$LOG_DIR$ACCESS_LOG_FILE" "$LOG_DIR"access-"$CURRENT_DATE".log
  systemctl reload nginx
fi

# Rotate the error log file if the date has changed
if [ "$CURRENT_DATE" != "$(date -r "$LOG_DIR$ERROR_LOG_FILE" +"%Y-%m-%d")" ]; then
  mv "$LOG_DIR$ERROR_LOG_FILE" "$LOG_DIR"error-"$CURRENT_DATE".log
  systemctl reload nginx
fi

# Archive previous day's log files
tar -czf "$LOG_DIR"access-"$CURRENT_DATE".tar.gz "$LOG_DIR"access-"$CURRENT_DATE".log
tar -czf "$LOG_DIR"error-"$CURRENT_DATE".tar.gz "$LOG_DIR"error-"$CURRENT_DATE".log

# Remove backup files older than 10 days
find "$LOG_DIR" -name "access-*.tar.gz" -type f -mtime +10 -delete
find "$LOG_DIR" -name "error-*.tar.gz" -type f -mtime +10 -delete

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值