#!/bin/bash
# 配置参数
LOG_FILE="access.log"
LOG_DIR="/home/webapp/logs"
BACK_LOG_DIR="/home/webapp/logs/logs_back"
MAX_SIZE=10485760 # 10MB
RETENTION_DAYS=14
# 检查日志文件大小
if [ -f $LOG_FILE ] && [ $(stat -c%s "$LOG_FILE") -ge $MAX_SIZE ]; then
# 创建日志目录(如果不存在)
mkdir -p $BACK_LOG_DIR
# 移动并压缩当前日志文件
TIMESTAMP=$(date +%Y%m%d%H%M%S)
cd $LOG_DIR
tar -zcvf logfile-$TIMESTAMP.log.gz $LOG_FILE &> /dev/null
mv logfile-$TIMESTAMP.log.gz $BACK_LOG_DIR
# 删除日志文件
rm -rf $LOG_DIR/$LOG_FILE
# 重新创建日志文件
touch $LOG_FILE
fi
# 删除超过两周的日志文件
find $BACK_LOG_DIR -name "*.gz" -type f -mtime +$RETENTION_DAYS -exec rm -f {} \;
版权归属:
路小飞
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
评论区