在伺服器之間傳輸資料的兩種方式
可以讓一台伺服器直接連線到另一台,也可以由自己的電腦在兩者之間中繼資料。直接連線通常較快,但來源伺服器需要能透過網路存取目標伺服器,並持有其認證資料,而你可能不希望將這些資料留在伺服器上。中繼方式不需要這兩個條件:只有你的電腦持有認證資料,兩台伺服器也不必能互相存取。代價是所有資料都會經過你的網路連線。
從命令列中繼傳輸
scp 的 -3 選項會透過本機電腦,在兩台遠端主機之間複製檔案。這適合單次複製,但不提供佇列;如果傳輸中斷,必須自行重新執行。
scp -3 admin@source.example:/srv/data/archive.tar.gz admin@target.example:/srv/data/驗證複製結果
在刪除來源伺服器上的任何內容之前,請先比較兩台伺服器上的總和檢查碼。SHA-256 值相符表示檔案已完整傳輸,光是檔案大小相同無法證明這一點。
ssh admin@source.example sha256sum /srv/data/archive.tar.gz
ssh admin@target.example sha256sum /srv/data/archive.tar.gz事先決定如何處理衝突
進行較大規模的傳輸前,請先決定目標位置已存在檔案時該如何處理:覆寫、保留兩者,或略過。檢查目標伺服器的可用空間及目標目錄的權限。以一般使用者身分複製不會保留檔案擁有者,因此還原應用程式後,可能需要修正檔案擁有權。
CH-J Server Manager 中的雙面板操作
在 Alpha 0.1.1 中,File Manager 提供一到三個面板,每個面板可顯示本機磁碟或任何已開啟的 SSH 工作階段。可以使用鍵盤、拖曳或快顯功能表,在面板之間複製或移動檔案。資料會透過你的電腦,從一個 SFTP 工作階段串流傳輸到另一個,不會儲存到電腦的磁碟;傳輸使用佇列,支援暫停、繼續、取消及衝突處理。移動檔案時,只有在 SHA-256 比對相符,且來源檔案未變更的情況下,才會刪除來源檔案。
需要注意的限制
傳輸並非直接在伺服器之間進行,因此速度取決於你的電腦與兩台伺服器之間的連線,而且電腦必須保持連線。只有使用 sudo 才能讀取的檔案,無法透過這種方式在伺服器之間複製。Beta 0.1.0 不包含多面板的 File Manager。