Anda tidak menggunakan -numeric-ids
dan/atau -fake-super
untuk pencadangan (dan pemulihan) Anda. Jika Anda memodifikasi rsync
Anda perintah sedikit Anda akan menyimpan dan memulihkan pemetaan dengan benar.
Dalam contoh ini, -M
memberi tahu rsync
untuk menerapkan opsi berikutnya, yaitu pemalsuan, di sisi jarak jauh koneksi. Efek samping tambahan adalah Anda tidak memerlukan sisi jarak jauh (tempat cadangan disimpan) untuk dijalankan sebagai root
Ini mendorong cadangan dari klien ke server cadangan
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids -M--fake-super --exclude-from="${exc_path}" "${src_path}" "${dst_addr}:${dst_path}"
Ini akan menarik cadangan dari klien (yaitu memulihkan)
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids -M--fake-super --exclude-from="${exc_path}" "${dst_addr}:${dst_path}" "${src_path}"
Dan ini, dijalankan di server cadangan, akan mendorong cadangan ke klien (yaitu memulihkan)
sudo rsync -azh -e 'ssh -pNNNN' --stats --delete --numeric-ids --fake-super "${dst_path}" "${src_host}:${src_path}"
Setiap file menyimpan informasi pemiliknya secara individual, tidak ada struktur data untuk mengindeks file berdasarkan pemiliknya. Jadi, apa pun yang Anda lakukan, Anda harus mencari file, dan mengubah UID pada masing-masing file, satu per satu. Untungnya, itu tidak terlalu sulit dilakukan; ini harus dilakukan:
find "$dir" -user olduser -exec chown newuser {} +
Tentu saja, akan lebih baik mengubah sistem pencadangan untuk menyimpan (dan memulihkan) UID yang benar, terutama jika Anda mungkin telah mencadangkan file milik banyak pengguna.