1. Linux 清理文件脚本
#!/bin/bash
# 获取当前时间
current_date=$(date +%Y-%m-%d)
# 计算两个月之前的日期
two_months_ago=$(date -d "$current_date -1 months" +%Y-%m-%d)
# 日志文件路径数组(替换为实际的日志文件路径)
log_directories=("绝对路径1" "绝对路径2")
# 定义文件名匹配模式
patterns=("sentinel-record.log.*.0*" "mogu*.log.*" "command-center*.log.*")
# 查找并删除两个月之前的日志文件
for log_directory in "${log_directories[@]}"; do
for pattern in "${patterns[@]}"; do
find $log_directory -type f -name "$pattern" | while read file; do
file_date=$(echo $file | grep -oE "[0-9]{4}-[0-9]{2}-[0-9]{2}")
if [[ "$file_date" < "$two_months_ago" ]]; then
echo "Deleting $file"
rm "$file"
fi
done
done
done
2. 保存上面的脚本并赋予执行权限
chomd +x clean_log.sh
3. 添加定时任务
crontab -e
4. 在文件中添加定时命令
30 2 1 * * /path/clean_log.sh
上述命令说明:在每月的1日2点30分执行脚本/path/clean_log.sh
也可以设置为:在每俩月的1日2点30分执行脚本:
30 2 1 */2 * /path/clean_log.sh
评论区