1. 在服务器安装expect
2. 编写脚本 login.sh
#!/usr/bin/expect
set timeout 5
spawn ssh root@10.156.9.20
expect {
"yes/no"
{send "yes\r"; exp_continue;}
"*password*"
{send "passIn,key\r"}
}
expect "*#"
send "docker restart docker_a\r"
expect "*#"
expect eof
3. 脚本内容注释
set timeout:设置超时时间,单位:秒。
spawn ssh root@10.156.9.20:以root用户登录服务器10.156.9.20。
后续为expect的分支判断,如果值为"yes/no",则发送"yes"到远端服务器;如果值包含"password",则发送密码到远端。
expect "*#":等待返回值。
expect eof:等待结束符。