使用脚本进行SFTP

简介:

 1. 软件介绍
WinSCP(http://winscp.net) 是一个 Windows 环境下帮助网络工程师使用SSH的开源图形化SFTP客户端,支持 SCP, SFTP 和 SCP 协议,支持批处理脚本和命令行方式,多种半自动、自动的目录同步方式,如图1所示。

2. 脚本方式进行SFTP的例子
假设我们从192.168.199.98服务器用test 用户登录,密码为test从服务上取下server.txt文件,把本地local.txt上传,那么gettxt.txt脚本如下
#设定如果有文件不进行覆盖提示,只接覆盖
option confirm off
#连接目标服务器,支持的格式为[ sftp|ftp|scp:// ][ <user> [ :password ] @ ] <host> [ :<port> ]
open sftp://test:test@192.168.199.98
# 设定二进制传输
option transfer binary
#下载文件到本地D盘
get /home/test/server.txt d:\server.txt
#上传文件到服务器
put d:\local.txt /home/test/local.txt
# 退出WinSCP软出
exit

执行的方式
winscp.exe /console /script=gettxt.txt

3. 同服务器进行文件夹镜像同步的脚本
假设我们以D:\temp\myfile\为源,向/home/test/myfile/进行镜像,每次执行时进行文件对比,有变化进行更新,那么l2s.txt脚本如下
option confirm off
option transfer binary
open sftp://test:test@192.168.199.98
#本地目录向远程镜像更新,注意/home/test/myfile/一定要先存在
#如果把remote 改成local 将是服务器向本地工作更新
#-delete 表示如果目标端有源端不存在的文件就删除
synchronize  -delete remote D:\temp\myfile\ /home/test/myfile/
exit
执行的方式
winscp.com /console /script=l2s.txt
注意:对于SFTP和SCP协议上传文件是可以更新时间戳同本地文件相同的,所以对比的原理是进行时间对比;但FTP默认上传到FTP的文件的时间,就是文件在FTP服务上建立文件的具体时间,为达到同样效果,对于FTP服务器要用时间和长度分别比较一次,具体为如下语句
synchronize -delete -criteria=size remote D:\temp\myfile\ /home/test/myfile/
synchronize -delete -criteria=time remote D:\temp\myfile\ /home/test/myfile/
4. 时间监控本地目录,发现变化就向服务器进行更新
参考脚本如下l2ss.txt
option confirm off
option transfer binary
open sftp://test:test@192.168.199.98
#本地目录向远程更新,实时监视改变,按Ctrl-C中止...
keepuptodate -delete D:\temp\myfile\ /home/test/myfile/
exit
执行的方式
winscp.com /console /script=l2s2.txt


本文转自 小王 51CTO博客,原文链接:http://blog.51cto.com/xiaowang/1161379,如需转载请自行联系原作者

相关文章
|
关系型数据库 MySQL 网络安全
部署sftp
部署sftp
|
存储 Linux 网络安全
sftp和scp的用法-本地和远程上传下载文件
sftp和scp的用法-本地和远程上传下载文件
|
Shell 数据安全/隐私保护 网络安全
shell使用lftp连接ftp和sftp,并可以指定私钥
lftp连接ftp在脚本中可以 lftp -c "open username:password@host:port; ls /Friso/20180822/click/mobile/SUCCESS | wc -l" lftp usename:password@host:port -e "ls /Fr...
3369 0
|
关系型数据库 Linux 网络安全