#被检测目录所占磁盘空间超过门限值(DiskSpaceThreshold)就会触发下面的删除操作
#文件按时间排序,时间越早的文件排在越前面,删除排在前3/4的文件
// A code block
#!/bin/bash
Dir=~/tmp #需要检测的目录
LineNum=$(ls -lrt $Dir | wc -l);
DeleteNum=$(expr ${LineNum} \* 3)
DeleteNum=$(expr ${DeleteNum} / 4)
DiskSpaceThreshold=1 #G,被检测目录所占磁盘空间的上限,超过这个数就会触发删除操作
echo $LineNum
echo $DeleteNum
cd $Dir
Result=$(du -sh | grep "G")
if [[ "$Result" != "" ]];then
CurSpace=$(du -sh | awk -F "G" '{ print $1 }')
CurSpace=$(echo $CurSpace | awk -F "." '{ print $1 }')
if (( $CurSpace >= $DiskSpaceThreshold ));then
ls -lrt $Dir | awk ' { if(NR>=0 && NR<="'$DeleteNum'") print $9}' | xargs rm -rf
fi
else
echo "Well below the threshold"
fi