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



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

我有一个磁盘,它位于

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

如果它的回报98%满了,我想做以下几点

find . -size +80M -delete

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

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

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

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

要调度脚本,您可以参考维基百科 Cron 条目。

有一个使用 find 命令删除 Unix 和 Linux 站点上文件的示例:"如何根据find输出删除目录?"

对于测试,需要测试构造和命令替换。请注意,您将使用 "backticks" 表示 sh,但对于 bash,$(...) 形式已取代反引号用于命令替换。

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

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

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

您的测试可能如下所示:

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

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

最新更新