使用 expect 和 while / loop 登录 SSH
SSH Login with expect and while / loop
我需要登录 50 个不同的服务器和 运行 一个带有 expect
的脚本
如何使用 expect 实现循环?
#!/usr/bin/expect -f
spawn bash -c "ssh -tt $user@$ip < /root/examplescript.sh"
expect "*assword:"
send "$password\r"
interact
输出listserver.txt
user password ip
user password ip
user password ip
user password ip
user password ip
如果您需要将主机等列表保存在单独的文件中,请查看 Andreas Louv 链接到的答案。如果你不这样做,你可以这样做:
#!/usr/bin/expect -f
foreach {user password ip} {
user1 password1 ip1
user2 password2 ip2
user3 password3 ip3
user4 password4 ip4
} {
spawn bash -c "ssh -tt $user@$ip < /root/examplescript.sh"
expect "*assword:"
send "$password\r"
interact
}
我需要登录 50 个不同的服务器和 运行 一个带有 expect
的脚本如何使用 expect 实现循环?
#!/usr/bin/expect -f
spawn bash -c "ssh -tt $user@$ip < /root/examplescript.sh"
expect "*assword:"
send "$password\r"
interact
输出listserver.txt
user password ip
user password ip
user password ip
user password ip
user password ip
如果您需要将主机等列表保存在单独的文件中,请查看 Andreas Louv 链接到的答案。如果你不这样做,你可以这样做:
#!/usr/bin/expect -f
foreach {user password ip} {
user1 password1 ip1
user2 password2 ip2
user3 password3 ip3
user4 password4 ip4
} {
spawn bash -c "ssh -tt $user@$ip < /root/examplescript.sh"
expect "*assword:"
send "$password\r"
interact
}