expect基础
expect常用的四个命令:
spawn
启动新的进程
expect
从进程接收字符串
send 用于向进程发送字符串
interact 允许用户交互
详细解释:
spawn
命令用来启动新的进程,spawn
后的send
和expect
命令都是和使用spawn
打开的进程进行交互。
send
命令接收一个字符串参数,并将该参数发送到进程。
expect
命令和send
命令相反,expect
通常用来等待一个进程的反馈,我们根据进程的反馈,再发送对应的交互命令。
interact
命令用的其实不是很多,一般情况下使用spawn
、send
和expect
命令就可以很好的完成我们的任务;但在一些特殊场合下还是需要使用interact
命令的,interact
命令主要用于退出自动化,进入人工交互。比如我们使用spawn
、send
和expect
命令完成了ftp登陆主机,执行下载文件任务,但是我们希望在文件下载结束以后,仍然可以停留在ftp命令行状态,以便手动的执行后续命令,此时使用interact
命令就可以很好的完成这个任务。
#!/usr/bin/expect #!/usr/bin/bash #ssh连接的用户名 set username *** #ssh连接的地址 set host 80.7.3.1 #ssh连接远程目录 set dirname "/log/configsave_dir" #目标文件名 set filename "`date +%Y%m%d`.tar.gz" #ssh连接的端口号 set port 22 #ssh连接的密码 set password *** #ssh连接的超时时间 set timeout -1 #spawn ssh [email protected]$host -p $port #echo $filename spawn scp [email protected]$host:$dirname/$filename /opt expect "*password:" send "$password\r" interact
时间: 2024-11-10 00:09:18