侧边栏壁纸
博主头像
SRE实战博主等级

行动起来,活在当下

  • 累计撰写 12 篇文章
  • 累计创建 1 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

日志清理脚本

Miracle
2024-03-01 / 0 评论 / 0 点赞 / 9 阅读 / 2472 字

功能

删除指定路径日志, 只保留最近产生的日志

1. 创建脚本

mkdir -p /script
cat > /script/logs_clean.sh <<'EOF'
#!/bin/bash

# 保留数量
retain_num=10

# 日志
log_file=/tmp/delete.log

# 需要清理的路径(将需要清理的路径写列表中每行一个)
logs_list=(
    /tmp/scheduler
    /tmp/scheduler1
    /tmp/scheduler2
    /tmp/scheduler3
)

echo "==============================================================" >> $log_file
echo "=                    $(date '+%F %T')                     =" >> $log_file
echo "==============================================================" >> $log_file
for log_dir in ${logs_list[@]}; do
    echo "=>  Directory: $log_dir | Start Time: $(date '+%F %T')" >> $log_file
    if [ -d "$log_dir" ]; then
        sum_num=$(ls $log_dir -rt | wc -l)
        let del_num=$sum_num-$retain_num
        if [ $del_num -gt 1 ]; then
            del_list=$(ls $log_dir -rt | head -n $del_num)
            for files in $del_list; do
                if [ -e "$log_dir/$files" ]; then
                    size=$(du -sh $log_dir/$files | awk '{print $1}')
                    rm -rf $log_dir/$files
                    if [ ! -e "$log_dir/$files" ]; then
                        echo "$(date +'%F %T') | $log_dir/$files | $size 删除成功"  >> $log_file
                    else
                        echo "$(date +'%F %T') | $log_dir/$files | $size 删除失败"  >> $log_file
                    fi
                fi
            done
        fi
    fi
    echo "=>  Directory: $log_dir | End Time: $(date '+%F %T')" >> $log_file
done
echo "================   END $(date '+%F %T')    ================" >> $log_file
echo -e "\n\n" >> $log_file
EOF

chmod +x /script/logs_clean.sh

2. 测试

image.png

image.pngimage.png

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区