Chinaunix首页 | 论坛 | 博客
  • 博客访问: 276178
  • 博文数量: 52
  • 博客积分: 1278
  • 博客等级: 中尉
  • 技术积分: 627
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-26 12:46
文章分类

全部博文(52)

文章存档

2013年(1)

2012年(51)

分类: LINUX

2012-03-06 09:52:39

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

转载地址
阅读(3837) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~