Saya menggunakan doa rsync ini untuk membuat cadangan direktori home saya:
rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"
Halaman manual rsync mengatakan bahwa -a menyiratkan -g dan -o (di antara sakelar lain), yang harus mempertahankan kepemilikan. Namun saya perhatikan bahwa jika direktori tidak ada di bawahnya $BACKUP_MNTPOINT/$USER_HOME
, direktori tersebut dibuat dengan root: kepemilikan root alih-alih yang benar. (Ini hanya terjadi dengan direktori di bawah $BACKUP_MNTPOINT/$USER_HOME
). Mengapa demikian?
$BACKUP_MNTPOINT
adalah drive yang terpasang secara lokal. $BACKUP_MNTPOINT/$USER_HOME
memang memiliki hak kepemilikan dan izin. Baik $USER_HOME
atau $BACKUP_MNTPOINT
diakhiri dengan garis miring.
Sumber dan sistem file target adalah XFS dan menjalankan mkdir $BACKUP_MNTPOINT/$USER_HOME
menciptakan direktori dengan kepemilikan yang diharapkan.
sumber
$BACKUP_MNTPOINT
dan dengan opsi apa ia di-mount? Apakah ini hanya terjadi pada$BACKUP_MNTPOINT/$USER_HOME
direktori parent ( ) atau untuk semua direktori yang dibuat? Lakukan$BACKUP_MNTPOINT
dan$USER_HOME
akhiri dengan/
?/home
dan drive cadangan. Sejauh ini saya pikir itu hanya terjadi pada direktori induk. Baik$BACKUP_MNTPOINT
atau$USER_HOME
diakhiri dengan garis miring. EDIT: Saya dapat mengkonfirmasi sekarang ini hanya terjadi pada direktori di bawah ini$BACKUP_MNTPOINT/$USER_HOME
$BACKUP_MNTPOINT/$USER_HOME
punya izin yang tepat tetapi subdirektori mana pun tidak? Harap edit pertanyaan Anda dan tambahkan detail ini. Juga, jelaskan apakahmkdir $BACKUP_MNTPOINT/$USER_HOME/foo
membuat direktori milik pengguna Anda jika Anda melakukannya secara manual.mkdir $BACKUP_MNTPOINT/$USER_HOME/foo
buat direktori dengan kepemilikan pengguna.strace
(sebagaimana ditentukan dalam jawaban semu).Jawaban:
Saya memiliki masalah yang sama ketika menggunakan
rsync
untuk mencadangkan sistem saya ke server saya. Saya menggunakan:Solusinya adalah tidak ada masalah. Saya menduga bahwa Anda membatalkan
rsync
proses begitu Anda melihat bahwa itu membuat folder dengan set izin yang salah. Intinya adalah bahwarsync
hanya menetapkan izin dari folder induk setelah selesai menyinkronkan semua subfolder dan file itu.sumber
Mungkin jalankan rsync melalui strace / truss dan lihat apakah Anda mendapatkan kesalahan kembali dari chown () syscall, dan juga untuk mengkonfirmasi bahwa chown () memiliki jalur yang benar dan UID / GID.
sumber