判断10台机器的网络连通情况,做到可以通过一台机器免密登录,并验证。

#!/bin/bash 
for i in {140..150} #从140到150选取
do    #循环开始
{       
        ip=192.168.183.$i     #$i 是刚刚选区的变量 组成ip地址
        ping -c1 -W1 $ip &>/dev/null  # -c1 表示ping一次  -W1表示ping的超时时间可快速执行 &>/dev/null  输入到垃圾箱
        if [ $? -eq 0 ];then  #进行判断上面ping的ip 是否能连通
                echo "$ip" >>ip_up.txt #如果连通则输出到ip_up.txt
        else    
                echo "$ip 网络异常 " >>ip_down.txt  #不能连通则输出到ip_down.txt
          
        fi

# /usr/bin/expect 是命令路径(记得安装expect) Shell中通常将EOF与 << 结合使用 为了将非交互的内容得以实现

/usr/bin/expect <<-EOF   
set timeout 10  # 设置超时时间

#spawn是执行expect之后后执行的内部命令开启一个会话 用于执行shell语句

spawn ssh-copy-id root@$ip 
expect {
        "yes/no" { send "yes\r"; exp_continue }
        "password:" { send "1\r" };
}
expect eof   #在等待结束标志,由spawn启动的命令在结束时会产生一个eof标记,expect eof 即在等待这个标记
EOF 
ssh root@$ip   #测试远程登录
        if [ $? -eq 0 ];then   #判断是否登录成功
                echo "$ip 免密成功" >>ip_up.txt   
        
        fi
}&

done  #循环结束
wait   
echo "收工"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值