环境:
有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 root@192.168.217.$i:~ >>/dev/dull ssh root@192.168.217.$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 )
完!
本文出自:http://www.xmydlinux.org/201106/550.html转载于:https://blog.51cto.com/junlee/642414