[英]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
,則可能安裝了ncftp
或lftp
或ftp
。 我只是碰巧知道wget
最好的。 :)
編輯要使用ftp
,您需要執行以下操作:
ftp src
user username
pass password
bin
cd /pathname
ls
此時,請記下遠程系統上的所有目錄。 使用!mkdir
創建每個。 然后在本地和遠程切換到目錄:
lcd <dirname>
cd <dirname>
ls
重復所有目錄。 使用mget *
獲取所有文件。
如果這看起來很糟糕,那是因為它。 FTP不是為此而設計的,如果你的新主機沒有更好的工具(一定要查找ncftp
和lftp
以及ftpmirror
類的ftpmirror
),那么要么自己編譯更好的工具,要么善於編寫糟糕的腳本工具。 :)
或者,如果你可以在src
上獲得一個shell,那也非常有幫助。 FTP不是用於傳輸數千個文件。
無論如何,這可以避免在本地系統中彈跳,這應該有助於顯着提高吞吐量。
我一直在尋找一個簡單的解決方案,通過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.