簡體   English   中英

如何在rsync中通過FTP復制所有文件

[英]How to copy all files via FTP in rsync

我有一些主機的在線帳戶,它給我FTP用戶名和密碼帳戶。

我有另一個與copany給了我FTP和rsync。

現在我想通過rync將我的所有文件從舊FTP傳輸到新FTP。

現在可以通過rsync來實現它,因為我不想先在計算機上復制然后再次上傳

讓我們只用FTP src調用機器。

讓我們用FTP和SSH dst調用機器。

ssh dst
cd destination-direction
wget --mirror --ftp-user=username --ftp-password=password\
     --no-host-directories ftp://src/pathname/

請注意,在命令行上使用--ftp-password運行wget --ftp-password泄露給系統上的任何其他人。 (以及透明的電線傳輸,但你知道。)

如果您無權訪問wget ,則可能安裝了ncftplftpftp 我只是碰巧知道wget最好的。 :)

編輯要使用ftp ,您需要執行以下操作:

ftp src
user username
pass password
bin
cd /pathname
ls

此時,請記下遠程系統上的所有目錄。 使用!mkdir創建每個。 然后在本地和遠程切換到目錄:

lcd <dirname>
cd <dirname>
ls

重復所有目錄。 使用mget *獲取所有文件。

如果這看起來很糟糕,那是因為它。 FTP不是為此而設計的,如果你的新主機沒有更好的工具(一定要查找ncftplftp以及ftpmirror類的ftpmirror ),那么要么自己編譯更好的工具,要么善於編寫糟糕的腳本工具。 :)

或者,如果你可以在src上獲得一個shell,那也非常有幫助。 FTP不是用於傳輸數千個文件。

無論如何,這可以避免在本地系統中彈跳,這應該有助於顯着提高吞吐量。

總是有可靠的FUSE文件系統, CurlFtpFSSSHFS 使用適當的文件系統掛載每個服務器並使用標准實用程序進行復制。 可能不是最快的方法,但可能是勞動密集程度最低的。

我一直在尋找一個簡單的解決方案,通過FTP將遠程文件夾同步到本地文件夾,同時只替換新文件。 基於sarnold答案 ,我遇到了一個小wget腳本,我覺得這對其他人也有幫助,所以這里是:

#!/bin/bash    
HOST="1.2.3.4"
USER="username"
PASS="password"
LDIR="/path/to/local/dir"    # can be empty
RDIR="/path/to/remote/dir"   # can be empty

cd $LDIR && \                # only start if the cd was successful
wget \
  --continue \               # resume on files that have already been partially transmitted
  --mirror \                 # --recursive --level=inf --timestamping --no-remove-listing
  --no-host-directories \    # don't create 'ftp://src/' folder structure for synced files
  --ftp-user=$USER \
  --ftp-password=$PASS \
    ftp://$HOST/$RDIR

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM