背景:
系统刚上线,需要优化的地方还有很多,首要的就是保证服务日志记录完整,查看方便,有本地备份,保障数据日志的完整性。部分核心服务日志每日都是几个G,不进行处理,后期排查问题分析日志就会很痛苦。
思路:
1、查找需要进行备份的日志。
2、复制一份到备份目录。
3、压缩,提高存储效率。
4、截断原日志文件,保障日志文件每日循环。
5、定时清理,可配置。
开干:
backup_mdm_logs.sh

#!/bin/bash
# 定义源目录和目标目录
LOG_DIR="/data/*****/deploy/logs"
BACKUP_DIR="/data/*****/deploy/logs/log_bak"
DATE=$(date +%Y-%m-%d)
# 确保备份目录存在
mkdir -p "$BACKUP_DIR/$DATE"
# 查找所有以 .log结尾的日志文件
find "$LOG_DIR" -name "*.log" -type f | while read -r file; do
# 获取文件名
filename=$(basename "$file")
# 复制文件到备份目录(保留原文件)
cp "$file" "$BACKUP_DIR/$DATE/$filename"
# 压缩备份的文件
gzip "$BACKUP_DIR/$DATE/$filename"
# 可选:清空原日志文件(保留文件,只清空内容)
> "$file"
done
# 可选:删除30天前的备份
find "$BACKUP_DIR" -type d -mtime +30 -exec rm -rf {} \;
效果展示:
脚本设置定时执行后的

备份在log_bak目录下,压缩存储

顿时看着清爽了好多
其他补充:
需要备份其他日志目录的,参考这个进行改写即可。
建议设置成定时任务,每日凌晨。这样每日分析日志就是当天的。


被折叠的 条评论
为什么被折叠?



