如何在df -h返回98%已满时执行命令
我有一个由
提供的磁盘/dev/sdb1 917G 816G 55G 94% /disk1
如果它的回报率为98%,我想做以下
find . -size +80M -delete
我该怎么做,我将使用cron
运行shell脚本* * * * * sh /root/checkspace.sh
答案 0 :(得分:1)
执行df -h
,将命令输出传递给匹配“/ dev / sdb1”的grep
,并按awk
处理该行,检查第5列的数字部分( $5
中的awk
大于或等于98.不要忘记检查它是否超过98的可能性。
答案 1 :(得分:0)
您需要安排脚本,检查磁盘利用率,如果利用率约为98%,则删除文件。
要安排脚本,您可以参考Wikipedia Cron条目。
有一个使用find命令删除Unix和Linux上的文件的例子。 Linux站点:
"How to delete directories based on find
output?"
对于您的测试,您需要test constructs和command substitution。请注意,您将使用"反引号"对于with,但对于bash,$(...)表单已取代命令替换的反引号。
要获得磁盘利用率,您可以使用:
df | grep -F "/dev/sdb1" | awk '{print $5}'
- 这是一个功能性的grep来获取你的特定磁盘,awk拔出第5列,并使用删除标志来删除百分号。
您的测试可能看起来像这样:
if [ `df | grep -F "/dev/vda1" | awk '{print $5}' | tr -d %` -ge 98 ];
then echo "Insert your specific cleanup command here.";
fi
当然,有很多方法可以解决这个问题,但希望有所帮助!