Permissions
rsync 可以在不重新下載的情況下修復時間戳嗎?
我已經鏡像了 100 GiB 的文件。在我的鏡像上,一些時間戳和文件權限可能是錯誤的。我想用 rsync 來解決這個問題。
我下載的伺服器有超過 100 GiB 的文件。我的鏡像鏡像*每個源目錄中的某些文件。*它不會鏡像整個目錄。
如何告訴 rsync 修復我的時間戳和文件權限,而無需重新下載 100 GiB?
有關資訊,我現在正在嘗試
rsync -av --list-only HOST::MODULE >/tmp/list.txt
. 一旦我獲取了這些數據,如果你們都不能告訴我更好的答案,我將編寫一個腳本來根據數據來處理我的每個文件。但是沒有更簡潔的方法來完成這項工作嗎?
(有這個問題,但它似乎沒有回答我的需要。)
如果您的源和目標位於不同的系統上,並且
rsync
客戶端與rsync
伺服器(任何類型的)通信,則權限和時間戳將在沒有數據內容傳輸的情況下更新。例如:rsync -avP --existing server:/path/to/source /path/to/target rsync -avP --existing server::module /path/to/target
另一方面,如果您的源和目標由同一個
rsync
程序管理,例如當伺服器的文件系統可通過 NFS 訪問時,則沒有有效的方法可以確認兩種情況下的數據相同,因此它放棄它的快捷方式,只需使用更正的權限和時間戳重新複製數據。例如:rsync -avP --existing /path/to/server/source /path/to/target
如果您有第二種情況並且您絕對確定文件內容相同,則有一種解決方法將強制
rsync
假設內容相同 - 即使其“快速檢查”失敗 - 並且只需更新權限和時間戳:rsync -avP --existing --size-only /path/to/server/source /path/to/target
該
--existing
標誌確保不會在目標位置創建新文件,但會適當更新現有文件。該--size-only
標誌強制rsync
忽略時間戳。