磁盘空间监控脚本--简约而不简单(shell编程实例)
作者 佚名技术
来源 Linux系统
浏览
发布时间 2012-04-28
我们在进行日常linux服务器管理的时候,为了保证服务器程序运行正常和服务产生的数据不丢失,磁盘空间一定要是足够用的,一般会去做一些定期的(crond)清理来做保障.但即使是这样,对于大型的应用服务,数据量产生非常大,做磁盘空间使用情况的监控报警就显得尤为重要了.
实际的环境中往往使用一台服务器做批量管理的枢纽,通过这台机器进行几百台、甚至上千台应用服务器的管理操作,这样的服务器我们一般称为中控机.本脚本便是采用按时运行于中控机进行大量服务器的磁盘监控工作.
下面这段shell脚本程序是我在工作中根据实际需要写的,看上去很简单,但却不失其功能.
#!/bin/bash #Used for reporting the disk space usage of the apl servers by the means of mail. #Written on **** #Author: Levin.<findingcc@126.com> IP=`cat /home/admin/server-iplist` MAILLIST=`cat /home/admin/maillist.sp` PERCENT=80 for i in $IP do DATE=$(date %F--%T) echo "******$DATE******" echo $i /usr/bin/ssh ${i#*--->} "df"|grep ^/|sed ''s/%//g''|awk -v p=$PERCENT ''{if($5>p)printf"%-16s %-6sn",$NF,$(NF-1)"%"}'' echo done|mail -s "SERVER磁盘空间使用情况报表(超过${PERCENT}%的)" -c $MAILLIST IP列表server-iplist的格式如下: SERVERNAME1--->对应的ip SERVERNAME2--->对应的ip SERVERNAME3--->对应的ip SERVERNAME4--->对应的ip. . . 结果会email给指定的收件人,邮件内容为如下显示: ******2009-11-09--13:01:01****** SERVERNAME1--->对应的ip / 86% 优化版本:#!/bin/bash #Used for reporting the disk space usage of the HP180 servers by the means of mail. #Written on xxxx. #Author: Levin. IP=`cat /home/admin/server-iplist` MAILLIST=`cat /home/admin/maillist.sp` PERCENT=80 for i in $IP do TIME=$(date %F--%T) ssh ${i#*--->} " num=($(df|grep ^/|sed ''s/%//g''|awk -v p=$PERCENT ''{if($5>p)print $5}'')) if [[ ${num[0]} -gt $PERCENT ]];then echo "===$TIME===" echo "$i" df|grep ^/|sed ''s/%//g''|awk -v p=$PERCENT ''{if($5>p)printf"%-16s %-6sn",$NF,$(NF-1)"%"}'' echo fi " done |mail -s "服务器磁盘空间不足!!" -c $MAILLIST此版本在原来的基础上实现了只打印硬盘使用超过预期的ip,而不是全部显示. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: Linux下多线程编程简介(一)下一篇: Linux下关于互斥锁及同步的移植(一)
关于磁盘空间监控脚本--简约而不简单(shell编程实例)的所有评论