1. Shell脚本实现自动登录
#!/usr/bin/expect -f
set IP 115.22.33.44
set PASSWORD pwdpwd
spawn ssh root@$IP
expect {
"*yes/no" { send "yes\r" }
"*password:" { send "$PASSWORD\r" }
}
interact #交互模式,用户会停留在远程服务器上面
复制代码
其中,*password:"是一种模糊匹配:如果终端输出了以"password:"的交互窗口,脚本就自动匹配并执行{send "$PASSWORD\r"}中的内容。\r表示回车执行。
2. 自动登录后执行命令
比如说,登录服务器后要执行一个导出mysql数据库的命令。
首先,在变量部分增加如下内容:
#!/usr/bin/expect -f
set IP 115.22.33.44
set PASSWORD pwdpwd
set DB_HOST localhost
set DB_USER dbuser
set DB_PASS mysqlpwd
set DB_NAME dbname
set SERVER_PATH /root/www
spawn ssh root@$IP
expect {
"*yes/no" { send "yes\r" }
"*password: