自用清理日志

 

传输方案

ansible all -i /opt/wpf/{hosts} -m synchronize -a "src=/opt/wpf/del_logs_97.sh dest=/opt/soft/" -u {用户} -e "ANSIBLE_TIMEOUT=30"

crontab添加

ansible all -i /etc/ansible/{hosts} -m cron -a "user={用户} name='Delete logs every 8 minutes' minute=*/8 job='sh /opt/soft/del_logs_91.sh'" 

脚本如下

#!/bin/bash
# 获取 /opt/ 目录的使用百分比
usage=$(df -h /opt/ | awk 'NR==2 {print $5}' | sed 's/%//')

# 如果使用率达到 97% 或更高,执行日志清理
if [ "$usage" -ge 97 ]; then
    echo "/opt 使用率达到 $usage%,开始清理日志..."

    # 查找并清理所有以 *** 开头的目录中的 logs 文件夹
    for dir in /opt/****/logs/; do
        if [ -d "$dir" ]; then
            echo "清理 $dir 下的日志..."
            find "$dir" -mtime +0 -type f -exec rm -f {} \;
        fi
    done

    # 判断并清理 /opt/tomcat/*/logs/ 下的日志
    if [ -d "/opt/tomcat/*/logs/" ]; then
        echo "清理 /opt/tomcat/*/logs/ 下的日志..."
        find /opt/tomcat/*/logs/ -mtime +0 -type f -exec rm -f {} \;
    fi

    # 判断并清理 /opt/applogs/xxl-job/jobhandler 下的日志
    if [ -d "/opt/applogs/xxl-job/jobhandler/" ]; then
        echo "清理 /opt/applogs/xxl-job/jobhandler 下的日志..."
        find /opt/applogs/xxl-job/jobhandler/ -mtime +0 -type f -exec rm -f {} \;
    fi

    # 判断并清理 /opt/sentinel 下的日志
    for dir in /opt/sentinel/****/logs/; do
        if [ -d "$dir" ]; then
            echo "清理 $dir 下的日志..."
            find "$dir" -mtime +0 -type f -exec rm -f {} \;
        fi
    done

    echo "日志清理完成."
else
    echo "/opt 使用率为 $usage%,不需要清理日志."
fi
posted @ 2025-05-15 10:42  优花梨天下第一可爱  阅读(8)  评论(0)    收藏  举报