磁盘使用脚本如果低于 90%,请不要给我发电子邮件

磁盘使用脚本如果低于 90%,请不要给我发电子邮件

我有下面的基本命令,但如果磁盘使用率不超过 90%,我不需要电子邮件 - 可能是某种类型的 else if 语句。

df -Ph | sed s/%//g | awk '{ if($5 > 90) print $0;}' | mail -s Disk Space Alert On $(hostname) [email protected]

答案1

我能够接受你的命令并将其拼凑在一起:

df -Ph | awk 'int($5) > 90 {print $0; rc=1}; END {exit rc}' || mail -s "Disk Space Alert On $(hostname)" [email protected]

我摆脱了,sed因为它不应该被需要awk。在awk声明中,如果发现任何列出的分区超过 90%,我将设置一个非零返回代码,然后仅在返回非零时发送电子邮件。

我能想到的唯一警告是,awk可能会因错误而失败,但您仍然会收到一封电子邮件,但也许这是理想的通知。

答案2

像这样的事情可能会起作用:

if [ $(LC_ALL=C df / | tail -1 | cut -d% -f1 | cut -d' ' -f12) -gt 90 ]; then echo mail -s "Disk Space Alert On $(hostname)" [email protected]; fi
  • df根据区域设置给出不同的输出,这就是为什么我在它前面加上前缀LC_ALL=C.替代方案CPOSIXen_US.UTF-8或为您的系统配置的其他区域设置。
  • /in替换df /为要检查的分区安装位置的路径。
  • -gt是一个代表“大于”的标志。

相关内容