批量ping 查看主機能否ping通,能否ssh上.md,

[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]$

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