最強大的遠端文件複製?
我將如何通過非常不穩定的網際網路連接複製文件?
有時,連接失去,有時一台機器或另一台機器的 IP 更改,有時兩者都更改,儘管動態 DNS 會擷取它。
您會建議使用哪種工具或命令?
我聽說
rsync
只複製差異非常漂亮,但這意味著很多工作要麼一次又一次地重新啟動它,要麼將它放入一段時間或 cronjob。我希望有一些更容易和萬無一失的東西。
附錄:
這是關於不時地複制幾個目錄,其中包含一些> 5GB的非常大的文件,從一個站點到另一個站點。複製後,兩者都在本地移動到不同的位置。
我無法在網路級別上做任何事情,我不具備這樣做的知識。
我寧願不設置 Web 伺服器來使用 wget。這並不安全,而且似乎是一條迂迴路線。
我已經建立了 SSH 連接,現在可以 rsync,因為兩台機器上都已經安裝了 rsync(我無法啟動並執行 rsync 守護程序)。
關於如何通過 ssh 進行智能 rsync以便在臨時切斷線路時嘗試繼續的任何提示?但是當 ssh 連接斷開時,rsync 不會成為問題。所以像這樣的東西(https://serverfault.com/questions/98745/)可能行不通:
while ! rsync -a .... ; do sleep 5 ; done
有任何想法嗎?
非常感謝!
加里
我肯定會建議
rsync
。rsync
每當我認為連接有被中斷的可能性時,我都會使用它來複製文件。如果複製失敗,我知道我可以簡單地重新啟動它。
while
如果您需要它自動重啟直到成功,很容易將其置於循環中。
rsync 的主要問題是它無法繼續單個文件。如果您要複製複雜的目錄結構,那沒關係,但如果您想複製例如單個 dvd 圖像,它就不會很健壯。
對於這種情況,我使用 wget。更確切地說,
wget -c -t 0 -T 10 http://....
特別有趣的是 20 秒超時,它解決了我們的工具因為一個失去的數據包而有效地掛起/凍結的常見問題。
當然它需要在源端有一個http伺服器。如果不切實際,有一個工具叫
split
它可以將大文件拆分成更小的文件,然後為它們使用 rsync。拆分後的文件可以稍後用一個簡單的 cat 重新統一。
當然,您甚至可以在循環中執行 rsync 直到它成功:
while ! rsync ...; do echo next try; done
評論後擴展
rsync
可以繼續文件,帶有-partial
標誌。謝謝@GregHewgill!:-)