示例2:监控服务器主机的磁盘使用情况,主机用于服务器,监控服务器磁盘容量的使用情况是极其重要的。当下我们写一个脚本用于监控服务器磁盘容量的使用情况,当磁 盘容量的百分比大于90%时,主机自动发邮件给运维管理员,并且此脚本每五分钟监控一次。
首先写一个监控服务器主机的磁盘容量使用情况shell脚本,然后使用crontab定时执行即可。
监控shell脚本如下(monitor.sh)
#! /bin/bash
#获取服务器磁盘空间使用百分数
#这条语句使用了一个名为管道的方式,吧前面命令执行的结果传递给后面的命令继续处理执行。
#这里还用到了两个流式编辑器:awk和sed,和一个过滤器grep
#df命令可以查看磁盘使用情况,grep过滤包含/dev/sda的哪一行
#然后awk处理只显示从grep取得哪行的第五列内容,最后sed删掉非数字的符号。
percentage=`df | grep -n '/dev/vda1' | awk '{print $5}' | sed 's/[^0-9\.]//g'`
#获取该服务器的信息
server=`ifconfig eth0 | sed -n '2p'`
if [ $percentage -ge 90 ]
then
echo "服务器磁盘空间使用超过90%, $server" | mail -s "server warning" syl8584918@126.com
else
echo "服务器磁盘空间使用正常...."
fi
crontab定时任务:
crontab是一个定时任务的执行工具,它随着系统启动,如果你有什么任务想定时启动或者执行,可以在crontab列表中添加响应的指令。相关用法可使用man crontab查看。
crontab -l
0 */1 * * * bash /root/monitor.sh >> /dev/null
systemctl restart crond
示例效果:
df | sed -n '6p'
/dev/vda1 41152736 5072752 33966500 13% /
[root@ecs0001 ~]# sh monitor.sh
服务器磁盘空间使用正常....