自动清理开发调试日志

背景:一些节点突然出现大量的日志将根目录迅速占满(从配置文件和日志内容看,像是程序日志忘记关闭开发调试,由于该程序是早期开发的,已不再维护)

#!/bin/bash
#防止脚本放到cron执行出错
source ~/.bash_profile

DIR=”$( cd “$( dirname “$0″ )” && pwd )”

 

####如果宿主机里面有大于一个tta的docker主机
du -sh /data/proclog/* |sort -rn |awk ‘$1~”G”‘ |grep -v “/data/proclog/log” |awk ‘{print $2}’ |awk -F’/’ ‘{print $NF}’ > $DIR/do_host.tmp
echo > $DIR/do_host.txt
for do_host_tmp in `cat $DIR/do_host.tmp` ; do
if [ -f “/data/proclog/$do_host_tmp/log/haproxy/ttarun.log” ];
then echo $do_host_tmp >> $DIR/do_host.txt
else
echo “There is no ttarun.log for hosts above 1GB”
exit 33
fi
done

for do_host in `cat $DIR/do_host.txt`; do
echo $do_host
echo `date`;du -sh /data/proclog/$do_host/log/haproxy/{ttarun.log-`date +”%Y%m%d”`,ttarun.log}

if [ -f /etc/cron.d/clean_ttarun_log ];then
cat /etc/cron.d/clean_ttarun_log
else
echo “No such file” && echo “*/5 * * * * root /bin/echo > /data/proclog/$do_host/log/haproxy/ttarun.log >/dev/null 2>&1” >> /etc/cron.d/clean_ttarun_log
cat /etc/cron.d/clean_ttarun_log
fi

for i in {1..7};do rm /data/proclog/$do_host/log/haproxy/ttarun.log-`date +”%Y%m%d” -d “-$i days”`;done
echo `date`;du -sh /data/proclog/$do_host/log/haproxy/ttarun.log*
done
####

Print Friendly

发表评论

电子邮件地址不会被公开。 必填项已用*标注