df -h return 98% full 时如何执行命令

How to execute command when df -h return 98% full

df -h return 98% full

时如何执行命令

我有一张磁盘在

/dev/sdb1             917G  816G   55G  94% /disk1

如果它 return 98% 已满,我想执行以下操作

find . -size +80M -delete

我该怎么做,我将 运行 使用 cron shell 脚本

* * * * * sh /root/checkspace.sh

执行 df -h,将命令输出通过管道传输到 grep 匹配“/dev/sdb1”,并通过 awk 处理该行,检查数字部分是否第 5 列(awk 项中的 )大于或等于 98。不要忘记检查它是否超过 98。

您需要安排脚本,检查磁盘利用率,如果利用率约为 98%,则删除文件。

要安排脚本,您可以参考 Wikipedia Cron 条目。

Unix&Linux站点有使用find命令删除文件的例子: "How to delete directories based on find output?"

为了您的测试,您需要 test constructs and command substitution。请注意,您将对 sh 使用 "backticks",但对于 bash,$(...) 形式已取代反引号以进行命令替换。

要获得磁盘利用率,您可以使用:

    df | grep -F "/dev/sdb1" | awk '{print }'

--这是一个用于获取特定磁盘的功能性 grep,用于拉出第 5 列的 awk,以及带有删除标志的 tr 用于删除百分号。

你的测试可能看起来像这样:

 if [ `df | grep -F "/dev/vda1" | awk '{print }' | tr -d %` -ge 98 ];
   then echo "Insert your specific cleanup command here.";
 fi

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