據說是一道面試題

 環境:

     有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

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