自用清理日志
传输方案
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
浙公网安备 33010602011771号