一、先安装expect,expect是一套完成自动交互任务的软件,主要命令有四个:
1.spawn:命令用来启动新的进程,spawn
后的send
和expect
命令都是和使用spawn
打开的进程进行交互
2.expect:等待命令的反馈。
3.send:接收到反馈之后,执行的交互命令。
4.interact:留在远程终端,并且退出自动化,进行人工交互,即可以手动写入命令。
安装expect的语句为:
yum -y install expect
二、shell代码
#!/usr/bin/expect
set timeout 30
set host "写入服务器ip"
spawn ssh $host
expect "password:"
send "写入密码"
interact
逐句解释:
1.#!/usr/bin/expect 设置这个脚本的解释器
2.set host "写入服务器ip" #设置host变量用于保存服务器ip
3.spawn ssh $host。#进入expect环境下才可以执行的内部命令spawn
4.expect "password:"#判断上次输出结果是否包含“”内的内容,如果包含则立即返回,否则等待30秒
#等待30s就是 set timeout 30
5.send "写入密码"#当匹配到输出结果中包含“password”,就发送密码到打开的ssh进程,执行交互
6.interact #登陆远程服务器之后,留在远程终端,并且可以手动交互