答案1
在没有监控系统和自动警告的以前,我曾使用过这个代码片段:
#!/bin/sh
df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while
read output;
do
echo $output
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge 90 ]; then
echo "Running out of space \"$partition ($usep%)\" on $(hostname)
as on $(date)" |
mail -s "Alert: Almost out of disk space $usep%" [email protected]
fi
done
如果您要监控的不仅仅是这台服务器,那么请帮自己和公司一个大忙,使用像 nagios 这样的合适的监控服务器。我们使用 opsview 社区版,因为它和 nagios 一样免费,并且具有出色的 Web 界面,因此您无需成为 Linux 管理员即可添加/删除主机/服务。
答案2
cron 的一行程序:
MAXUSE=`df |sed 's/^.* \([0-9][0-9]*\)%.*$/\1/g' \
|sort -nr \
|head -1` \
sh -c 'if [[ ${MAXUSE} > 95 ]]; then echo "Usage at ${MAXUSE}%"; fi'
请注意,cron 仅在有输出时才发送电子邮件。因此,运行但不打印任何内容的 cron 脚本不会触发任何电子邮件。
答案3
你可以使用 cron 和因克龙