我想在我的服务器上实现一个脚本,如果磁盘使用率超过 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
期望整数。去掉%
后面的ALERT
,usep
改为
usep=$(echo $output | awk '{ print $1}' | tr -d "%" )
考虑看看 monit 包:它更标准,它允许您做更多的事情,包括根据监控结果采取行动。
请考虑使用更标准的监控方式,例如 monit,它允许您执行更多操作,并且非常灵活,允许您以非常简单的格式根据事件生成警报和操作。