据说是一道面试题

 环境:

     有100台server,配置好了密钥登录方式。ip地址为;192.168.217.1~100。跑着相同的服务,但是其中一部分服务进程出现异常,会在该服务的日志文件/home/logs/cc.log 中生成带有关键字err的错误。一部分服务能够正常工作。要求写shell查出出现异常服务的IP。

  个人认为两个shell更加容易理解。在管理服务器上写如下两个脚本

[root@xmydlinux ~]# vi c.sh
#!/bin/bash
IP=`ifconfig |sed -n '/192.168.217./{s/.*addr://;s/ .*//;p}'`
ERRTURE=`grep err /home/logs/cc.log`
#如文件过大,可更改为sed打印第一行关键字即可。
if [ $ERRTURE ]
   then
       echo $IP
fi

 

[root@xmydlinux ~]# vi s.sh
#!/bin/bash
chmod 777 ~/bb.sh
for ((i=1;i<=100;i++))
do
 scp -p ~/c.sh [email protected].$i:~ >>/dev/dull
 ssh [email protected].$i "sh ~/c.sh &&rm -rf ~/c.sh"
done

给s.sh文件授权执行即可。

[root@xmydlinux ~]# chmod +x s.sh
[root@xmydlinux ~]# ./s.sh
192.168.217.17
192.168.217.30      //服务异常IP(也可写入文件作下一步操作

完!

本文出自:http://www.xmydlinux.org/201106/550.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章