[cloudop@note004 lilei]$ cat hosts_status.sh #!/bin/bash # 清空脚本结果文件

/tmp/cant_ssh.txt /tmp/cat_ssh.txt /tmp/cant_ping.txt

# shell脚本并发查看ip,具体ip列表根据个人信息更改 for n in $(awk '{print $1}' /etc/hosts |uniq |grep -v '127.0.0.1') do { ping -w 2 -c 2 $n 1>/dev/null 2>&1 if [ $? -eq 0 ] then ssh $n 'hostname' 1>/dev/null 2>&1 if [ $? -ne 0 ] then echo $n >>/tmp/cant_ssh.txt # 不能ssh上的ip else echo $n >>/tmp/cat_ssh.txt # 能ssh上的ip fi else echo $n >>/tmp/cant_ping.txt # 不能ping通的ip fi }& done # 等待脚本执行完毕 wait # 输出详细内容,并且排除掉外网ip,之保留内网ip,内网IP是10段的,所以排除掉,根据实际情况更改 echo "sh $0 is done" SSHOK=$(cat /tmp/cat_ssh.txt |grep ^10 |wc -l) echo "$SSHOK master SSH is ok , info to read /tmp/cat_ssh.txt" SSHDOWN=$(cat /tmp/cant_ssh.txt |grep ^10 |wc -l) echo "$SSHDOWN master cant ssh , info to read /tmp/cant_ssh.txt" PINGDONE=$(cat /tmp/cant_ping.txt |grep ^10 |wc -l) echo "$PINGDONE master cant ping , info to read /tmp/cant_ping.txt" [cloudop@note004 lilei]$