用expect模拟sftp

简介:
伏笔:server端是基于windows的server-u,启用了sftp,并不是标准的sftp,因此无法用ssh的key信任方式直接登录。为了节约人工,无奈之下,采用expect来解决问题。下面是例子:
#!/usr/bin/expect
##
## 用expect模拟sftp上传文件
## created by yejr(imysql AT imysql.cn),2008/11/20
##
#取得传递参数,构造变量
set DT [lindex $argv 0]
set NU [lindex $argv 1]
set ftp_lcd "/dbbak/$DT/$NU"
#查看本地文件
send "ls -la $ftp_lcd\r"
#发送命令
send "cd $ftp_lcd\r"
#发起sftp
spawn sftp yejr@192.168.0.84
expect "yejr@192.168.0.84's password:"
#发送密码
send "abccba"
expect "sftp>"
#设定lcd
send "lcd $ftp_lcd\r"
expect "sftp>"
#上传文件,这里不知为何无法使用mput
send "put $ftp_lcd/dbbak*$DT*.sql.gz.md5\r"
expect "sftp>"
send "put $ftp_lcd/dbbak*$DT*.sql.gz\r"
expect "sftp>"
#列文件,确认大小没问题
send "ls -la\r"
expect "sftp>"
#bye bye :)
send "bye\r"
interact
呵呵,有需要的朋友可以用上,顺便提出改进建议。


本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/308849,如需转载请自行联系原作者
相关文章
|
缓存 网络协议 数据库连接
C/S架构中HTTP错误状态码原因分析及解决办法
HTTP(Hypertext Transfer Protocol)是用于在客户端和服务器之间传输数据的协议。当在浏览器或其他HTTP客户端中访问网页时,可能会发生各种访问报错。我们需要根据网页提供的错误状态码分析错误原因,以找到相对应的解决办法。
1307 0
|
存储 C++
【寒假打卡】Day01
【寒假打卡】Day01
131 0
|
Docker 容器
OnlyOffice社区版破解最大连接限制部署
OnlyOffice社区版破解最大连接限制部署
|
Kubernetes Docker 容器
【Docker】'TLS handshake timeout' 问题修复记录
'TLS handshake timeout' 问题修复记录
2078 0
【Docker】'TLS handshake timeout' 问题修复记录
|
网络协议 Linux 数据安全/隐私保护
如何在Windows本地快速搭建SFTP文件服务器,并通过端口映射实现公网远程访问
如何在Windows本地快速搭建SFTP文件服务器,并通过端口映射实现公网远程访问
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
261465 0
|
存储 Java Maven
Spring Cloud Alibaba服务问题之服务报错如何解决
Spring Cloud Alibaba提供了一套在Spring Cloud框架基础上构建的微服务解决方案,旨在简化分布式系统的开发和管理;本合集将探讨Spring Cloud Alibaba在实际应用中的部署和使用技巧,以及该框架常见问题的诊断方法和解决步骤。
|
Devops 持续交付 开发工具
入职必会-开发环境搭建54-GitLab下载和安装
GitLab 是一个基于 web 的 Git 仓库管理工具,提供了代码托管、版本控制、协作开发、持续集成等功能,是一个综合的 DevOps 平台。用户可以使用 GitLab 托管他们的代码仓库,并利用其丰富的功能来管理和协作开发项目。 以下是 GitLab 的一些主要特点和功能。
316 0
入职必会-开发环境搭建54-GitLab下载和安装
|
Linux Python
Linux离线安装Python第三方库Requests
本文介绍了在无法连接外网的Linux服务器上离线安装Python第三方库Requests的过程,包括下载依赖包、解决依赖问题并成功安装的步骤。
1408 0
|
数据可视化 Linux 程序员
仅需几步就可快速实现SFTP的免密传输
在程序员的日常工作中,通过FTP/SFTP等工具在服务器之间进行文件的交互是一个基操技能,无论是编码开发过程中的跨系统传输文件,还是生产部署过程中的数据索取,熟练掌握这一技能,可以大大的提高开发效率。当然,现在也有很多终端模拟器提供了可视化的文件传输功能,比如XFTP、WINSCP、MobaXterm、Finalshell等等。
307 2