ฉันใช้คำร้องขอ rsync นี้เพื่อสำรองข้อมูลไดเรกทอรีบ้านของฉัน:
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
rsync man page บอกว่า -a หมายถึง -g และ -o (ระหว่างสวิตช์อื่น ๆ ) ซึ่งควรรักษาความเป็นเจ้าของ อย่างไรก็ตามฉันสังเกตเห็นว่าหากไม่มีไดเรกทอรีภายใต้$BACKUP_MNTPOINT/$USER_HOME
มันจะถูกสร้างขึ้นด้วย root: ความเป็นเจ้าของ root แทนที่จะเป็นไดเรกทอรีที่ถูกต้อง (สิ่งนี้จะเกิดขึ้นกับไดเรกทอรีที่อยู่ด้านล่าง$BACKUP_MNTPOINT/$USER_HOME
) ทำไมถึงเป็นอย่างนั้น?
$BACKUP_MNTPOINT
เป็นไดรฟ์ที่ติดตั้ง localy $BACKUP_MNTPOINT/$USER_HOME
มีกรรมสิทธิ์และสิทธิ์ที่เหมาะสม ไม่ได้$USER_HOME
หรือ$BACKUP_MNTPOINT
ลงท้ายด้วยเครื่องหมายทับ
ทั้งซอร์สและระบบไฟล์เป้าหมายคือ XFS และการรันmkdir $BACKUP_MNTPOINT/$USER_HOME
จะสร้างไดเร็กทอรีที่มีความเป็นเจ้าของที่คาดไว้
/home
และไดรฟ์สำรอง จนถึงตอนนี้ฉันคิดว่ามันเกิดขึ้นเฉพาะกับไดเรกทอรีหลัก ไม่ได้$BACKUP_MNTPOINT
หรือ$USER_HOME
ลงท้ายด้วยเครื่องหมายทับ แก้ไข:ฉันสามารถยืนยันตอนนี้มันเกิดขึ้นกับไดเรกทอรีด้านล่างเท่านั้น$BACKUP_MNTPOINT/$USER_HOME
mkdir $BACKUP_MNTPOINT/$USER_HOME/foo
สร้างไดเรกทอรีด้วยกรรมสิทธิ์ของผู้ใช้
strace
(ตามที่ระบุไว้ในคำตอบหลอก)
$BACKUP_MNTPOINT
และมีตัวเลือกอะไรติดตั้งอยู่บ้าง สิ่งนี้เกิดขึ้นเฉพาะกับ$BACKUP_MNTPOINT/$USER_HOME
ไดเรกทอรีparent ( ) หรือสำหรับทุกไดเรกทอรีที่สร้างขึ้นหรือไม่ ทำ$BACKUP_MNTPOINT
และ$USER_HOME
จบด้วย a/
หรือไม่?