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,在這里可以下載。有需要的可以下載,軟件的主頁要翻牆才可以得到。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM