windows下的命令行同步工具wget、lftp用法和疑问(已解决)

缘由:

      由于一个每天都要将远程的数据同步到本地,并将数据截取一些字段更新到数据库中(数据每天有3g左右),开始使用绿环备份,用程序定时查找目录是否有变化,读取文本文件后更新到数据库。在使用中发现会与绿环造成文件冲突,将绿环的间隔时间加大有可能造成同步不及时,影响数据的及时性。想到了使用windows的计划任务调用批处理,完成同步工作和更新数据工作,因为批处理在上一个任务没有结束前是不会开始下一个任务的。

使用wget

      wget是一个非常稳定的开源工具,从linux移植过来的。用法如下(我将命令的参数加入到了注释中)

 1  rem  -a 将日志信息添加到文件
 2  rem  -c 断点续传
 3  rem  -N 比较文件时间戳
 4  rem  -nH 不创建IP地址为文件夹的目录名
 5  rem  -P 将文件下载到指定目录
 6  rem  -r 递归调用,下载子目录
 7  wget -o E:\RE\LOG.TXT -c -N -nH -P E:\RemoteData\ --ftp-user=你的用户名 --ftp-password=密码 ftp://网址/ -r
 8  cd ..
 9  cd ..
10  cd D:\myCode\AutoProcess\ConsoleApp\bin\ Debug\
11 ConsoleApp.exe
使用lftp

     在不追求速度时,wget已经工作得很好了,网上的资料也很丰富,但是数据较大,有好几个文件,使用wget需要更新2,3个小时(网速只有8M,而且ftp被限速了)。所以只好找一个可以多线程下载的工具。lftp也是Linux移植过来的,功能非常强大,但是资料比wget要少,尤其是在windwos下的使用。

 1  rem  -p 端口号
 2  rem  -u 用户名
 3  rem  -e 在选择后执行命令
 4  rem  以下是mirror 项
 5  rem  -c 断点续传
 6  rem  -e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。
 7  rem  -n 只下载较新的档案
 8  rem  -r 不用递回到目录中
 9  rem  --parallel=n 同时下载 n 个档案(预设一次只下载一个)
10  e:
11  cd E:\RemoteData\
12  copy D:\tools\lftp\ftpscript.txt E:\RemoteData\ /Y 
13 d:\tools\lftp\lftp -f ftpscript.txt
14  cd\
15 d:
16  cd D:\myCode\AutoProcess\ConsoleApp\bin\ Debug\
17 ConsoleApp.exe

ftpscript.txt中的内容

1 lftp ftp站点IP -p 21 -u 用户名,密码
2 mirror -c -e -n -r --parallel=10 /
3 exit

 

lftp的使用疑惑

在“使用lftp”一节中第12行(copy D:\tools\lftp\ftpscript.txt E:\RemoteData\ /Y ),可能有读者会问为什么,因为我实在是不知道在lftp中如何访问指定目录下的文件,我这样调用过

 

1 D:\tools\lftp>lftp -f d:\tools\lftp\ftpscript.txt

得到错误提示
source: d:\tools\lftp\ftpscript.txt: No such file or directory

 

同样的,mirror [OPTS] [remote [local]]

这个[local],也有同样的问题,有高手知道吗,请指教,谢谢。

 

解决windows下目录访问和多线程下载的问题(确实比大多数windows下的图形工具好用太多)

 在windows下,如果要指定目录请使用

 

/cygdrive/你的盘符/盘符下的目录/

 

多线程请使用 

 

--use-pget=线程数

 

比如完整的命令如下:

 

lftp ftp站点IP -p 21 -u 用户名,密码  -e "mirror -c -e -n -r --parallel=8 --use-pget=10 / /cygdrive/e/RemoteData/"

 

 另外,最新的Lftp,在这里可以下载。有需要的可以下载,软件的主页要翻墙才可以得到。


转载于:https://www.cnblogs.com/GDLMO/articles/2330529.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值