如何將非常大的檔案/目錄從一台主機複製到另一台「離線」主機?

如何將非常大的檔案/目錄從一台主機複製到另一台「離線」主機?

我打算很快為我管理的一些資源密集型網站建立一個真正的 vps 伺服器。在我生活的國家,1Mb/s 的網速是一種奢侈,而持續不間斷的電力則是個神話。

這就是我想要實現的目標:

  • 如何透過 SSH/SCP 將檔案和目錄從來源伺服器複製到目標伺服器。
  • 即使我的互聯網斷開或電源中斷,如何仍然在伺服器之間複製檔案。
  • 如果我關閉終端機窗口,如何使文件仍在兩台伺服器之間複製。

我知道可以透過 scp 進行複製,但當我離線時它似乎無法繼續工作。

答案1

rsync -azvP source_directory user@remote:remote_directory

應該允許您在兩台電腦之間複製文件,同時在發生中斷時保存進度。

這裡還有每個標誌的解釋。http://explainshell.com/explain?cmd=rsync+-azvP

如果您希望在未登入的情況下允許它在伺服器上運行,您可以將上述命令傳遞給命令nohup。您還可以在 tmux 會話中運行它,這將允許您透過在登入電腦時附加會話來監視進度(或重新啟動命令)。

tmux您可以透過在伺服器上鍵入來啟動 tmux 會話。然後,您可以執行 rsync 命令並透過鍵入CTRL+b和 來與 tmux 會話分離d。註銷不會影響複製過程。重新登入後,您可以鍵入內容tmux attach,並且可以查看複製操作的進度。

希望這可以幫助!如果我能澄清任何事情,請告訴我。

答案2

我強烈建議您看看使用 rsync 命令。 rsync 指令很有用,因為它可以輕鬆恢復傳輸。 Rsync 預設會透過 SSH 傳輸執行,您只需要在用戶端和伺服器上安裝 rsync 二進位檔案。

Rsync 會偵測已傳輸的檔案並且只傳輸檔案以及尚未傳輸的部分檔案。

答案3

我相信這應該可以解決問題:

nohup scp -r big-folder remote-machine:/home/user/ &

此命令啟動複製過程,並在您登出後繼續複製。

相關內容