#!/bin/bash
base_log_path=/opt/applog
app_name_1="logs/inventory"
app_name_2="dubbo"
part_name=$(date +%Y)
compress_logs() {
local path="$1"
local name="$2"
# 更严格的正则表达式验证
if [[ "$name" =~ ^[a-zA-Z0-9_/-]+$ ]]; then
files=$(find "$path/$name" -type f -name "*$part_name*" 2>/dev/null)
if [ -n "$files" ]; then
while IFS= read -r file; do
if [[ $file =~ "\.gz$" ]]; then
echo "$file"
else
gzip "$file"
fi
done <<< "$files"
fi
else
echo "Invalid name: $name"
fi
}
# 压缩日志文件
compress_logs "$base_log_path" "$app_name_1"
compress_logs "$base_log_path" "$app_name_2"
# 删除超过3小时的日志文件
find "$base_log_path/$app_name_1" -type f -mmin +180 -name "*.gz" | xargs rm -f
# 删除超过2天的日志文件
find "$base_log_path/$app_name_2" -type f -mtime +2 -name "*.gz" | xargs rm -f
日志清理
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 添加一个定时任务,定时执行日志清理脚本: # (crontab -l 2>/dev/null || true; e...
- 需求背景 解决某些中间件或者应用日志无法自动清理的情况,比如:Nacos 的 access 日志清理,临时目录文件...
- 一. 整体收益 实现自动化清理应用日志,减少运维人工清理操作,在一定程度上提高了系统可用性和稳定性,同时提高运维效...
- 前言 透过Zabbix文件系统监控告警发现日志未定时清理,进一步排查后确认前同事写的trimlog脚本在某些服务器...