將檔案從伺服器(靜態IP)備份到家庭伺服器(動態IP)

將檔案從伺服器(靜態IP)備份到家庭伺服器(動態IP)

我已經熟悉並使用 rsync、scp 傳輸、tar、7z 等,但這些都無法解決我打算定期進行的備份。

我有一台遠端伺服器,其 100GB SSD 已使用 80% 的空間,我想從中進行備份。伺服器有 10,000 多個小文件,因此基本的 tarball 或某種中間壓縮(如 rsync -z)會有所幫助。

我家裡有一台伺服器,我想備份到該伺服器,但它使用動態 IP。

麻煩的是使用rsync-z或者scp 和 tar (透過管道),它必須在遠端伺服器上完成,但該伺服器無法看到我的家庭伺服器,因為它在動態 IP 上。

因此我只能在我的家庭伺服器上執行命令,例如scp user@remoteserver:/files/to/backup /home/user/backups但這不能使用壓縮,因此大量檔案需要很長時間才能傳輸。

有更快的方法嗎?

PS 我不需要像 tarball 那樣儲存檔案權限等

編輯:由於遠端伺服器上的空間有限,我無法在那裡製作 tarball 並拉到家庭伺服器上。因此,它必須是實時的。

答案1

為什麼不能rsync從備份目標啟動?沒有任何固有的限制rsync可以阻止這種情況發生。跑步

rsync -avz [email protected]:/data /backupdir 

在備份目標(家庭伺服器)上應該這樣做。

答案2

有很多選項最簡單的可能是將 -C 命令添加到 SSH 等,以啟用連結壓縮。

更複雜(更快,確保大量小檔案和延遲)的解決方案是刪除 scp 並使用管道動態壓縮資料。像 tar -cz /path/to/backup | 這樣的東西SSH user@remote "cd /path; tar -xz" 將使用 gzip 壓縮來壓縮和解壓縮檔。當然,沒有什麼可以阻止您在 ssh 之後使用不同的命令,例如,如果您只想儲存壓縮文件,則可以使用“cat > /path/to/file.tar.gz”代替。

我不清楚你為什麼在這裡談論動態IP。如果這造成問題,您可以使用動態 DNS 或在靜態伺服器上設定 VPN,或從動態 IP 發起拉取,而不是從靜態 IP 推送。

相關內容