0

我总共有 6 个 IP 地址,在 6 个 IP 地址中只有 2 个有效。我编写了一个 shell 脚本来使用 sshpass 来测试每个 IP。

问题是当脚本到达正在运行的 IP 时,它会记录在系统(Cisco 交换机)中并停留在那里,而不是继续循环以测试剩余的 IP。如果我在系统上键入“exit”而不是继续循环。

成功登录后,脚本如何从已登录的系统中自动退出并继续测试剩余 IP?

/usr/bin/sshpass -p $ADMINPASS ssh -oStrictHostKeyChecking=no -oCheckHostIP=no -t $ADMINLOGIN@$IP 退出

我可以使用退出状态来确定哪些 IP 有效,哪些无效。

4

1 回答 1

1

首先测试 IP 是否存在,然后在其上使用 'ssh' 可以帮助您。我不知道您是否使用循环,但循环可能是一个不错的选择。应该看起来像:for f in ip- 1 ip-2 ip-3 ip-4 ip-5 ip-6;执行 ping -c 1 -w 3 $f; 如果 [ $? -当量0];然后回显OK;ssh_pass $f your_command; 否则回显“IP 不正常”;菲; 完成 然后您还可以添加“退出”命令,具体取决于您测试的内容:如果正常,则“退出 0”,在“ssh”命令之后,如果不正常,则“退出 1”。

于 2016-05-29T10:39:14.140 回答