利用expect工具传输文件到另一台服务器

需要先安装expect工具和tcl。(发送方有安装就行,接收方可以没有安装)

yum安装
       yum install  expect 

       yum install expect-devel

       yum install tcl 

如此之后,就可以正常使用expect tcl 了

另外安装expect工具的方法

rpm -qa expect   #检查是否安装
yum install expect -y   #执行安装命令
rpm -qa expect  #再次检查是否安装
expect-5.44----就说明安装成功了

不需要读入参数的版本,路径写死
运行./test.sh,需要先赋予权限 chmod u+x test.sh

#!/usr/bin/expect
set timeout 30

#fname=2017-12-01.tgz
#expect设置变量用set参数
set fname a.txt

#在expect环境下执行scp命令用spawn命令
spawn scp -l 22 /usr/local/${fname} root1@192.168.179.131:/home/root1
#这个命令的意思是判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回
expect "password"

#类似交互动作,输入密码。注意 123456 是我的密码,最后别忘了加 \r
send "123456\r"

#执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。
interact

读入文件路径参数的版本,新建script.exp
代码如下

#!/usr/bin/expect
set timeout 30
set fname [lindex $argv 0]
#fname=2017-12-01.tgz
#expect设置变量用set参数

#在expect环境下执行scp命令用spawn命令
spawn scp -l 22 /usr/local/${fname} root1@192.168.179.131:/home/root1
#这个命令的意思是判断上次输出结果里是否包含“password:”的字符串,如果有则立即返回,否则就等待一段时间后返回
expect "password"

#类似交互动作,输入密码。注意 123456 是我的密码,最后别忘了加 \r
send "123456\r"

#执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。
interact

访问方式:

./script.exp a.txt
或者
expect script.exp a.txt(建议)

linux中的代码复制
windows->linux shift+insert
linux->windows ctrl+insert

参考博客:

https://blog.csdn.net/wer724853863/article/details/78873290
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值