Files

rsync 即使使用 -a 也不會保留目錄所有權

  • March 25, 2015

我使用這個 rsync 呼叫來備份我的主目錄:

rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"

rsync 手冊頁說 -a 意味著 -g 和 -o (以及其他開關),它們應該保留所有權。但是我注意到,如果目錄下不存在$BACKUP_MNTPOINT/$USER_HOME,它是使用 root:root 所有權創建的,而不是正確的。(這只發生在目錄下面$BACKUP_MNTPOINT/$USER_HOME)。這是為什麼?

$BACKUP_MNTPOINT是本地安裝的驅動器。$BACKUP_MNTPOINT/$USER_HOME確實擁有正確的所有權和權限。既不$USER_HOME也不$BACKUP_MNTPOINT以斜線結尾。

源文件系統和目標文件系統都是 XFS 並且執行mkdir $BACKUP_MNTPOINT/$USER_HOME會創建一個具有預期所有權的目錄。

rsync用於將我的系統備份到我的伺服器時,我遇到了類似的問題。我用了:

rsync -aAXSHPr \
-e ssh \
--rsync-path="sudo /usr/bin/rsync/" \
--numeric-ids \
--delete \
--progress \
--exclude-from="/path/to/file/that/lists/excluded/folders.txt" \
--include-from="/path/to/file/that/lists/included/folders.txt" \
/ USER@SERVER:/path/to/folder/where/backup/should/go/

解決方案是沒有真正的問題。我懷疑您在rsync看到它創建的文件夾設置了錯誤的權限後就中止了該過程。關鍵是rsync只有在完成同步所有子文件夾和文件後才設置父文件夾的權限。

引用自:https://unix.stackexchange.com/questions/165423