Tôi sử dụng lời gọi rsync này để sao lưu thư mục chính của mình:
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
Trang man rsync nói rằng -a ngụ ý -g và -o (trong số các thiết bị chuyển mạch khác), cần duy trì quyền sở hữu. Tuy nhiên, tôi nhận thấy rằng nếu một thư mục không tồn tại $BACKUP_MNTPOINT/$USER_HOME, nó được tạo với quyền sở hữu root: root thay vì thư mục chính xác. (Điều này chỉ xảy ra với các thư mục ngay bên dưới $BACKUP_MNTPOINT/$USER_HOME). Tại sao vậy?
$BACKUP_MNTPOINTlà một ổ đĩa gắn cục bộ. $BACKUP_MNTPOINT/$USER_HOMEkhông có quyền sở hữu và quyền. Không $USER_HOMEphải cũng không $BACKUP_MNTPOINTkết thúc bằng một dấu gạch chéo.
Cả nguồn và hệ thống tệp đích là XFS và việc chạy mkdir $BACKUP_MNTPOINT/$USER_HOMEsẽ tạo một thư mục với quyền sở hữu dự kiến.
/homevà ổ đĩa sao lưu. Cho đến nay tôi nghĩ rằng nó chỉ xảy ra cho các thư mục cha. Không $BACKUP_MNTPOINTphải cũng không $USER_HOMEkết thúc bằng một dấu gạch chéo. EDIT: Tôi có thể xác nhận ngay bây giờ nó chỉ xảy ra với các thư mục ngay bên dưới$BACKUP_MNTPOINT/$USER_HOME
mkdir $BACKUP_MNTPOINT/$USER_HOME/footạo một thư mục với quyền sở hữu của người dùng.
strace(như được chỉ định trong câu trả lời giả).
$BACKUP_MNTPOINTgì và với những tùy chọn nào được gắn kết? Điều này chỉ xảy ra cho thư mục cha ($BACKUP_MNTPOINT/$USER_HOME) hoặc cho tất cả các thư mục được tạo? Làm$BACKUP_MNTPOINTvà$USER_HOMEkết thúc với một/?