服务器交互脚本expect

服务器同步:

可以使用rsync同步,但是需要输入用户名密码;这种情况下我们就可以使用expect完成

安装expect包

#yum install expect -y

#rsync /etc/passwd root@192.168.1.129:/tmp  //同步/etc/passwd文件到192.168.1.129服务器的/tmp文件夹

 expect配合send使用,根据提示输入对应的交互信息。

#!/usr/bin/expect
 set USERNAME [ lindex $argv 0 ]
 set PASSWORD [ lindex $argv 1 ]
 set SRC [ lindex $argv 2 ]
 set DEST [ lindex $argv 3 ]
 spawn /usr/bin/rsync $SRC $USERNAME@192.168.1.129:$DEST
 expect "yes/no"
 send "yes/r"
 expect "$PASSWORD"
 send "redhat/r"
 expect eof

  

原文地址:https://www.cnblogs.com/hongjinping/p/14018554.html