如果磁盘空间容量超过 90%,则发送邮件的脚本

如果磁盘空间容量超过 90%,则发送邮件的脚本

我想在我的服务器上实现一个脚本,如果磁盘使用率超过 90%,它将自动发送电子邮件警报。我的文件系统是data/u01,挂载点是/u01

#!/bin/bash

[email protected]

ALERT=90

df -h | egrep -v 'data/u01/u01' | awk '{ print $5 " " $1 }' | while read output; 

do

usep=$(echo $output | awk '{ print $1}' )

echo $usep

if [ $usep -ge ${ALERT%} ]; then

  echo  "Alert: Almost out of disk space $usep"

  df -h | mail -s "Alert: out of disk space $usep"  $ADMIN

fi

done

…………

但我收到以下错误:

capacity

./iv.sh: line 8: [: capacity: integer expression expected
23%

./iv.sh: line 8: [: 23%: integer expression expected
0%

答案1

-ge期望整数。去掉%后面的ALERTusep改为

usep=$(echo $output | awk '{ print $1}' | tr -d "%" )

考虑看看 monit 包:它更标准,它允许您做更多的事情,包括根据监控结果采取行动。

请考虑使用更标准的监控方式,例如 monit,它允许您执行更多操作,并且非常灵活,允许您以非常简单的格式根据事件生成警报和操作。

相关内容