当df -h返回98%满时如何执行命令

时间:2015-04-29 06:06:29

标签: linux shell sh

如何在df -h返回98%已满时执行命令

我有一个由

提供的磁盘
/dev/sdb1             917G  816G   55G  94% /disk1

如果它的回报率为98%,我想做以下

find . -size +80M -delete

我该怎么做,我将使用cron

运行shell脚本
* * * * * sh /root/checkspace.sh

2 个答案:

答案 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 constructscommand 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

当然,有很多方法可以解决这个问题,但希望有所帮助!