Rsync
rsync 可以在只寫模式下工作嗎?
我們正在工作中配置一個 Linux 備份伺服器,我們所有的其他伺服器(也主要是 Linux)都將向該伺服器發送備份。備份的大小為數百 GB,包含數千個文件,其中 99% 不會每天發生變化。
通常,這是 rsync 的完美案例。不幸的是,我們的要求之一是備份伺服器是只寫的,以便伺服器可以將備份上傳到它,但是沒有任何東西可以遠端訪問這些備份,以防這些伺服器中的任何一個受到損害。我們目前將 vsftpd 設置為在只寫模式下工作,效果很好,除了每晚需要通過網路傳輸數百 GB 的數據。
據我所知,因為 rsync 將遠端文件與本地文件進行比較,所以它需要遠端伺服器上的讀寫訪問權限。
我的問題是: rsync 是否可以在任何模式下執行,其中備份伺服器可以顯示校驗和和文件的文件名,但不能顯示實際數據?這意味著它仍然是只寫伺服器,但我們可以進行差異備份而不是完整備份。
如果你只是想減少網路流量,但不介意浪費本地磁碟空間,一個新穎的解決方案是在本地“鏡像”備份,然後使用 rsync 的批處理模式將差異發送到遠端。
鬆散地,你會做本地備份
rsync --write-batch=foo -a /src/dir/ /localcopy/dir/
這將創建一個包含所有要進行的更改的文件,以及一個在遠端執行以解釋內容
foo
的單行腳本。foo.sh
將兩者復製到遠端,然後在遠端上執行腳本:scp foo foo.sh remote: ssh remote ./foo.sh /dir/
或者,如果您願意:
ssh remote rsync --read-batch=- -a /dir/ <foo
您可能還會查看加密遠端數據的 rsync 的重複性,因此您還需要竊取加密密鑰以利用數據。