windows下的命令行同步工具wget、lftp用法

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

使用wget
            wget是一个非常稳定的开源工具,从linux移植过来的。用法如下(我将命令的参数加入到了注释中)
rem -a 将日志信息添加到文件
rem -c 断点续传
rem -N 比较文件时间戳
rem -nH 不创建IP地址为文件夹的目录名
rem -P 将文件下载到指定目录
rem -r 递归调用,下载子目录
wget -o E:\RE\LOG.TXT -c -N -nH -P E:\RemoteData\ --ftp-user=你的用户名 --ftp-password=密码 ftp://网址/ -r
cd ..
cd ..
cd D:\myCode\AutoProcess\ConsoleApp\bin\Debug\
ConsoleApp.exe



使用lftp
          在不追求速度时,wget已经工作得很好了,网上的资料也很丰富,但是数据较大,有好几个文件,使用wget需要更新2,3个小时(网速只有8M,而且ftp被限速了)。所以只好找一个可以多线程下载的工具。lftp也是Linux移植过来的,功能非常强大,但是资料比wget要少,尤其是在windwos下的使用。
rem -p 端口号
rem -u 用户名
rem -e 在选择后执行命令
rem 以下是mirror 项
rem -c 断点续传
rem -e 这个要小心一些, 比较远端和本地端的档案, 假如远端没有的, 就将本地端的档案删除, 也就是将本地端和远端资料同步。
rem -n 只下载较新的档案
rem -r 不用递回到目录中
rem --parallel=n 同时下载 n 个档案(预设一次只下载一个)
e:
cd E:\RemoteData\
copy D:\tools\lftp\ftpscript.txt E:\RemoteData\ /Y
d:\tools\lftp\lftp -f ftpscript.txt
cd\
d:
cd D:\myCode\AutoProcess\ConsoleApp\bin\Debug\
ConsoleApp.exe


lftp在windows下使用疑惑
D:\tools\lftp>lftp -f d:\tools\lftp\ftpscript.txt windows这样的目录访问方式是错的,必须写成 /cygdrive/你的盘符/盘符下的目录/
改成 D:\tools\lftp>lftp -f /cygdrive/d/tools/lftp/ftpscript.txt



来源:https://www.cnblogs.com/GDLMO/articles/2330529.html
[最后修改由 admin, 于 2018-09-15 13:45:59]
评论Feed 评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=2538

这篇日志没有评论。

此日志不可发表评论。