有N台需要被检测的Linux服务器(CentOS,Debian),将其中一台作为主服务器,这台主服务器必须具有良好的安全性,比如
是处于内网环境以及配备防火墙。将这台主服务器和其他N-1台服务器做主机信任,也就是说可以无需输入密码就能远程进入其
他服务器(下次发布批量做信任的脚本)。
在主服务器上将写好的监测脚本批量传至各台服务器上面,上传脚本工具ssh.sh如下:
02 | hosts=`cat /root/diskcheck/hostlist` |
03 | for host in $hostsdo ping -c 2 -W 2 $host |
06 | ssh $host "mkdir /root/diskcheck" |
07 | scp dfcheck.sh root@$host:/root/diskcheck/" |
09 | echo "$(date +%Y/%h/%d-%H:%M) $host is lost" >> /root/diskcheck/ssh.log |
其中hostlist中列举了所有要上传目的主机的ip地址。脚本中提到的dfcheck.sh脚本内容如下:
02 | dfcheck=`df | awk '$5~/[0-9]/{print $5}' | sed 's/%//'` |
03 | ip=`ifconfig | awk '/inet/{print $2}' | sed 's/' | sed '/127.0.0.1/d' | sed '/^$/d' | sed q` |
06 | if [ $num -ge 80 ];then |
07 | echo "NOTE: The_disksize_of_$ip _is_used_greater_then_80%." > disksos |
09 | /usr/bin/curl -s -3 -d id=XXXX -d pwd=XXXXX -d to=phonenumber -d content=$info$ "" |
以上的脚本是用来在被检测的服务上查看硬盘分区使用情况,并且对超过上限80%的主机进行报警,报警内容也很详细,这里手机
报警采用的是某网站()提供的单向短信服务,其实也可以通过飞信机器人进行这样的短信报警服务,感兴
趣的可以网上搜索并安装,这里不做介绍。
接下来还有最后一道工序,就是在主服务器上写一个可以固定频率去前段每一台服务器上执行dfcheck.sh的脚本:
checkdisk.sh
02 | hosts=`cat /root/diskcheck/hostlist | awk '{print $1}'` |
08 | ssh $host "sh /root/diskcheck/dfcheck.sh" |
10 | echo "$(date +%Y/%h/%d-%H:%M) $host is lost" >> /root/diskcheck/ssh.log |
现在需要把checkdisk.sh脚本添到主服务器crond服务中,安排好执行时间,选择适当的频率执行。
这样做的好处在于可以很简单的改变监测频率,消耗资源较少,起到统一管理服务器的目的。
转载地址
阅读(3837) | 评论(0) | 转发(0) |