我正在使用 rsync 進行備份。這是我的命令列:
sudo rsync -avuh --delete --stats --log-file=$LOGFILE --exclude-from $EXCLUDE $SOURCE $DEST
這在大多數情況下都有效。然而,今天,我遇到了一個場景,我只是更改了文件的屬性以使其可執行。出於好奇,我運行了 rsync,但它沒有顯示該檔案已複製到目的地。
文件內容完全相同,這是統計輸出:
檔案:“專案/simpleFlash.py” 大小:706 區塊:8 個 IO 區塊:4096 個常規文件 設備:802h/2050d 索引節點:56961 連結:1 訪問:(0755/-rwxr-xr-x) Uid:( 1000/ pi) Gid:( 1000/ pi) 訪問時間: 2015-03-26 17:13:29.970428613 -0400 修改: 2015-02-17 00:16:44.558033934 -0500 更改: 2015-05-19 13:53:28.401164123 -0400 出生:-
mtime 相同但 ctime 不同。對於具有相同 mtime 的文件,如何使 rsync 查看文件屬性變更?
眼鏡: 同步3.0.9 檔案系統:ext4 Linux 核心:3.18.11+
答案1
正如手冊頁所述rsync(1)
:
Rsync 使用「快速檢查」演算法(預設)來尋找需要傳輸的文件,該演算法會尋找大小或上次修改時間已更改的文件。當快速檢查顯示檔案的資料不需要更新時,將直接在目標檔案上對其他保留的屬性(根據選項的請求)進行任何變更。
這意味著只要您告訴rsync
轉移屬性,它們就會更新。您說缺少的屬性是權限,因此將-p
或添加--perms
到命令列即可。