注:待清除目录deldir,busidir代码已删除。
脚本功能:获取系统目录/applog使用量,判断是否在阀值下,超出阀值时进行相应的清理操作。清除按以下方法:满足清除条件时,删初始值为5天前的日志,若/applog达到阀值以下,停止清除,否则继续清除4天前的日志,依此类推.
#!/bin/bash declare dir="/applog" #/applog目录下按阀值清除 clean(){ local interval=$1 #find /home/dzyx/bill/drectory \(\(-name *\) -and -ctime +$interval\) -print -type d -exec rmdir {} \; local i for((i=0;i<${#deldir[@]};i++)) do if [ -x ${deldir[$i]} ];then cd ${deldir[$i]} #find ./ -type d -ctime +$interval -name "*" -exec rm -rf {} \; find ./ -type d -ctime +$interval -name "*"|xargs rm -rf cd ../RunLogs find ./ -type d -ctime +$interval -name "*"|xargs rm -rf fi done } #busiprocess下清除非当天目录 cleanCpic(){ local i for((i=0;i<${#busidir[@]};i++)) do if [ -x ${busidir[$i]} ];then cd ${busidir[$i]} find ./ -type d -ctime +1 -name "*"|xargs rm -rf fi done } getsize(){ local size=`df -h|grep $dir|awk '{print $4}' | tr -d '%'` return $size } getsize declare -i use=$? declare -i tag=5 #删除日期初始值 declare -i value=65 #applog目录阀值 echo "clearing files..." while [ $use -ge $value -a $tag -ge 0 ] do if [ $tag -ge 1 ] then echo "usage:$use%,clernup :$tag days before" clean $tag fi getsize use=$? ((tag--)) done #清理busiprocess,非当天目录 cleanCpic getsize use=$? if [ $use -le $value ];then echo "/applog 目录已经在阀值以下,当前值为:$use" fi exit 0
|
阅读(2399) | 评论(1) | 转发(1) |