我正在嘗試備份故障的硬碟,rsync 是理想的選擇,因為它具有進度指示器以及停止和恢復功能等功能。我遇到的一個問題是,雖然保留檔案日期修改屬性,但目錄獲得新的日期屬性。這會導致問題,因為我按日期對許多文件進行排序,以便我知道最近添加的內容。是否可以使用 rsync 保留目錄日期修改屬性:
sudo rsync -avhX --progress --info=progress2 /mnt/failing/ /mnt/new/
-t(包含在 -a 中)選項保留檔案屬性,但不提及目錄。為了成功保留某些屬性,/mnt/new 分區的所有權/權限是否有任何特殊要求?
答案1
目錄的最後修改時間由 保存-a
,但只有在 rsync 完成後才能看到。它不會嘗試為不斷更新新檔案的目錄設定時間。
你可以自己測試一下。建立目錄並將其日期設為昨天,然後使用 rsync 複製它:
$ mkdir d1 d2
$ ls -ld d1
drwxr-xr-x 2 40 Nov 4 14:41 d1
$ touch -d 'yesterday' d1
$ ls -ld d1
drwxr-xr-x 2 40 Nov 3 14:41 d1
$ rsync -i -avR d1 d2
$ ls -ld d1 d2/d1/
drwxr-xr-x 2 40 Nov 3 14:41 d1
drwxr-xr-x 2 40 Nov 3 14:41 d2/d1/
d2/d1 目錄有昨天的日期。我們可以覆蓋它並查看 rsync 是否修復了問題:
$ touch d2/d1
$ ls -ld d1 d2/d1/
drwxr-xr-x 2 40 Nov 3 14:41 d1
drwxr-xr-x 2 40 Nov 4 14:42 d2/d1/
$ rsync -i -avR d1 d2
.d..t...... d1/
$ ls -ld d1 d2/d1/
drwxr-xr-x 2 40 Nov 3 14:41 d1
drwxr-xr-x 2 40 Nov 3 14:41 d2/d1/
rsync -i
顯示 d2/d1 上的時間戳錯誤並修復它。
答案2
我最終寫了一篇關於這個問題的文章,以防它對某人有用。實際上,元資料的每一位都可以使用 Rsync 進行保存,如帖子中所述。
這是同步所有內容的片段:
sudo rsync -avihXP --info=progress2 --stats --dry-run /mnt/disk?/ /mnt/temp/
答案3
rsync -avz
為我做一切
-v
用於詳細
-a
用於存檔模式(類似於 -rlptgoD)
-z
用於使用壓縮