(1)执行脚本的机器: yum install expect
(2)写个autoSSH.exp文件,内容:
#!/usr/bin/expect
set channel [lindex $argv 0]; set passwd "123456";
spawn ssh "root@$channel"; set timeout 300;
expect { "*assword:*" { send "$passwd\r"; }
"*es/no)?*" { send "yes\r" ; exp_continue ; }
eof { send_user "connection to host failed: $expect_out(buffer)" exit } };
expect root@* {send "./xxx.sh \r" } ; expect root@* { send "exit\r" } ; expect 100%
注意第一行的:#!/usr/bin/expect,要有 root是用户名,123456是密码,看着改吧 我是登录后执行了一个xxx.sh,就退出了
(3) 写个sh文件:
ip_array=("172.26.0.1" "172.26.0.2" "172.26.0.3") for ipOne in ${ip_array[*]} do echo '-------------' echo ${ipOne} echo '-------------' ./autoSSH.exp ${ipOne}
done
执行这个sh文件即可。 ================================================ 如果登录到别的服务器,不想退出那个服务器的话, 就写一行:interact 就行了。命令行就留在那个服务器上了。
|