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_MNTPOINT
là một ổ đĩa gắn cục bộ. $BACKUP_MNTPOINT/$USER_HOME
không có quyền sở hữu và quyền. Không $USER_HOME
phải cũng không $BACKUP_MNTPOINT
kế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_HOME
sẽ tạo một thư mục với quyền sở hữu dự kiến.
/home
và ổ đĩ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_MNTPOINT
phải cũng không $USER_HOME
kế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/foo
tạ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_MNTPOINT
gì 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_MNTPOINT
và$USER_HOME
kết thúc với một/
?