環境:
有100臺server,配置好了密鑰登錄方式。ip地址爲;192.168.217.1~100。跑着相同的服務,但是其中一部分服務進程出現異常,會在該服務的日誌文件/home/logs/cc.log 中生成帶有關鍵字err的錯誤。一部分服務能夠正常工作。要求寫shell查出出現異常服務的IP。
個人認爲兩個shell更加容易理解。在管理服務器上寫如下兩個腳本
給s.sh文件授權執行即可。 完!
[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
[root@xmydlinux ~]# chmod +x s.sh
[root@xmydlinux ~]# ./s.sh
192.168.217.17
192.168.217.30 //服務異常IP(也可寫入文件作下一步操作)