我总共有6个IP地址,6个中只有2个IP地址有效。我编写了一个shell脚本来使用sshpass来测试每个IP。
问题是当脚本到达正在系统(Cisco交换机)中运行它的IP并且保持在那里并且不继续循环以测试剩余IP时。如果我在系统上键入“exit”而不是继续循环。
成功登录后,脚本如何自动从已记录的系统中退出,并继续测试剩余的IP?
/ usr / bin / sshpass -p $ ADMINPASS ssh -oStrictHostKeyChecking = no -oCheckHostIP = no -t $ ADMINLOGIN @ $ IP exit
我可以使用退出状态来确定哪些IP有效以及哪些无效。
答案 0 :(得分:1)
首先测试IP是否存活,然后'ssh'就可以了,可以帮到你。我不知道你是否使用了循环,但循环可能是一个不错的选择。应该是这样的:对于f在ip-1 ip-2 ip-3 ip-4 ip-5 ip-6;做ping -c 1 -w 3 $ f;如果[$? -eq 0];然后回声OK; ssh_pass $ f your_command;否则回应“IP是NOK”;网络连接; DONE 然后你可以添加'exit'命令,取决于你测试的内容:'exit 0'如果没问题,你'ssh'命令后,'exit 1'如果NOK。