Rsync
在更新原始碼時使用 rsync 是否安全?
rsync
假設源文件系統在 rsync 執行時很可能被修改,那麼在源文件系統已掛載且可寫時使用它是否安全?我認為在競爭條件下我可能無法獲得最新的修改,但是否存在腐敗風險?
rsync
在讀寫掛載的文件系統上使用是相當安全的。啟動時rsync
,它會建立一個文件列表,然後開始複製這些文件。此文件列表在執行期間未更新。然後複製實際數據。這意味著當一個文件在建立文件列表後
rsync
發生變化時,它將複製新的內容。但是,在建立文件列表後添加rsync
新文件時,不會複製該新文件。如果在建構文件列表後刪除rsync
了文件,rsync 將警告它無法複製該文件。請記住,這rsync
不是快照,這意味著很難判斷在哪個時間點rsync
複製了數據。另一方面,文件系統或捲管理器快照(例如,使用 ZFS 或 LVM)是即時創建的,並且是文件系統在明確定義的時間點的一致快照,然後可以復製到另一台主機。
rsync
不提供這種一致性。*編輯:*正如其他人在評論中指出的那樣,
rsync
實際上可能會損壞您的文件。當 rsync 開始讀取文件並且應用程序同時寫入該文件時,您最終可能會得到一個損壞的文件。