expect 交互式传输文件

expect 交互式传输文件(foreach)

一、脚本

#!/usr/bin/expect
set RemoteDir /usr/local/Mail
set LocalDIR  /home/edm_report/doc
set Date   [exec date "+%Y%m%d"]
#scp title and mail  file from 10.91.20.180 to localhost
foreach filename {
mail
title.txt
} {
set timeout 20
spawn scp [email protected]:${RemoteDir}/${filename} ${LocalDIR}/${filename}${Date}
expect {
        "no)?" {send "yes\r";exp_continue}
        }
expect {
        "password:" {send "123456\r"}
        }
expect eof
}

二、总结:

  1. 可以定义变量日期。
  2. 使用foreach 循环。
时间: 2024-10-11 11:30:51

expect 交互式传输文件的相关文章

expect 远程传输文件

+++++++++++++++++++++++++++++++++++++ 标题:expect 远程传输文件 时间:2020年3月3日 +++++++++++++++++++++++++++++++++++++ #/usr/bin/env expect set  ip  192.168.100.100 set  user  root set  password  centos set  timeout  5 spawn scp -r /etc/hosts ${user}@${ip}:/tmp e

expect+scp传输文件发现文件丢失

背景 使用expect+scp去跨机器传输文件,(别问我为什么,因为公司的测试机器都是通过堡垒机的,无法绕开堡垒机,只能暂时使用这个方法了),结果发现从A传递到B的tar.gz文件大小不一致了的,当时心里MMP了 步骤 1. 发现不是每次都会丢失文件,理论上网络稳不稳定只会造成传输时间的不同罢了: 2. 查阅资料发现expect的默认时间是30s,所以如果操作了30s的话,就会自行链接,原来如此: 3. 修改默认的连接时间为-1,就是说无限长的时间,具体如下: /usr/local/bin/ex

推送文件(expect交互式方式与sshpass非交互式方式)

前提条件 以下两种推送的文件是SSH的公钥,推送方式依赖于SSH,基于SSH的相关方面操作和机器相关配置请参考我的上一篇博文"ssh服务批量管理例子" 1.expect交互式方式 1.1上传文件及文件内容 #以10机器为例. #执行rz –y分别上传"dis-sshkey"."expect-copy-sshkey.exp"和"iplist",三者文件内容如下: [[email protected] ~]$ ls -l dis-

通过expect执行scp,传输文件不完整的解决方法

写了一个脚本来传输文件,类似于这样: sendsystem(){ expect -c " spawn scp $ORACLE_BASE/oradata/$ORACLE_SID/system01.dbf [email protected]$S_IP:$ORACLE_BASE/oradata/standby/ expect { yes/no { send \"yes\r\"; exp_continue } *assword* { send \"oracle\r\&quo

shell---scp远程传输文件不需要手动输入密码

1.通过sshpass让ssh记住密码实现ssh自动登陆 (1)安装sshpass sudo apt-get install sshpass 或者 下载sshpass-1.05.tar.gz shell>tar xvf sshpass-1.05.tar.gz shell>cd sshpass-1.05 shell>make && make install (2)测试 shell>/usr/local/bin/sshpass -p 密码 ssh [email prot

CentOS 7.0 使用Vsftpd服务传输文件

CentOS 7.0 使用Vsftpd服务传输文件 文件传输协议 文件传输协议(FTP,File Transfer Protocol),即能够让用户在互联网中上传.下载文件的文件协议,而FTP服务器就是支持FTP传输协议的主机,要想完成文件传输则需要FTP服务端和FTP客户端的配合才行. 通常用户使用FTP客户端软件向FTP服务器发起连接并发送FTP指令,服务器收到用户指令后将执行结果返回客户端. FTP协议占用两个端口号: 21端口:命令控制,用于接收客户端执行的FTP命令. 20端口:数据传

5-1Expect实现scp非交互传输文件

使用位置参数一定要计划好,他碰到什么东西该怎么走.expect实现scp非交互传输文件(参数要不要传看自己的情况)往往使用expect只打前战: 原文地址:http://blog.51cto.com/5450935/2096518

expect脚本同步文件expect脚本指定host和要同步的文件 构建文件分发系统批量远程执行命令

20.31 expect脚本同步文件#!/usr/bin/expectset passwd "liang.123"spawn rsync -av [email protected]:/tmp/12.txt /tmp/ 将远程的/tmp/12.txt同步到本地的机器上 expect {"yes/no" { send "yes\r"} 第一次会提示yes或no"password:" { send "$passwd\r&q

expect脚本同步文件,expect脚本指定host和要同步的文件,构建文件分发系统,批量远程执行

expect脚本同步文件 在一台机器上把文件同步到多台机器上 自动同步文件 [[email protected] sbin]# vim 4.expect #!/usr/bin/expect set passwd "s5381561" spawn rsync -av [email protected]:/tmp/12.txt /tmp/ expect { "yes/no" { send "yes\r"} "password:"