0

如何登录多台 UNIX 机器,这些机器的 IP 地址用 EXPECT 脚本保存到一个文件中,而我在登录前设置了用户名和密码?

4

1 回答 1

0

大致:

set fh [open ip_file.txt r]
while {[gets $fh ip] != -1} {
    spawn ssh $user@$ip
    expect "assword:"
    send -- $pass\r
    # do stuff
    send -- exit\r
    expect eof
}
close $fh

在这种情况下,您最好为每台机器设置密钥(ssh-keygenssh-copy-idssh-agentssh-add)。然后你可以使用一个简单的shell脚本

while read ip; do

ssh $user@$ip << END_SSH
# don't need the password
# do stuff
END_SSH

done < ip_file.txt
于 2013-01-09T14:15:21.087 回答