rsync, -a ile bile dizin sahipliğini korumaz


12

Ana dizini yedeklemek için bu rsync çağırma kullanın:

rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"

rsync man sayfası, -a'nın sahipliğini koruması gereken -g ve -o (diğer anahtarların yanı sıra) anlamına geldiğini söylüyor. Ancak altında bir dizin yoksa $BACKUP_MNTPOINT/$USER_HOME, doğru yerine kök: kök sahipliği ile oluşturulduğunu fark ettim . (Bu yalnızca aşağıdaki dizinlerde olur $BACKUP_MNTPOINT/$USER_HOME). Neden?

$BACKUP_MNTPOINT, yerel olarak monte edilmiş bir sürücüdür. $BACKUP_MNTPOINT/$USER_HOMEdoğru sahiplik ve izinlere sahiptir. Ne eğik çizgiyle ne $USER_HOMEde $BACKUP_MNTPOINTbitiyor.

Hem kaynak hem de hedef dosya sistemleri XFS'dir ve çalışan mkdir $BACKUP_MNTPOINT/$USER_HOMEbeklenen sahipliğe sahip bir dizin oluşturur.


1
Hangi dosya sistemi nedir $BACKUP_MNTPOINTve hangi seçeneklerle monte edilir? Bu yalnızca parent ( $BACKUP_MNTPOINT/$USER_HOME) dizini için mi yoksa oluşturulan tüm dizinler için mi oluyor? Do $BACKUP_MNTPOINTve $USER_HOMEbir sona /?
terdon

Hem XFS hem /homede yedekleme sürücüsü için kullanıyorum. Şimdiye kadar sadece üst dizinlerde olduğunu düşünüyorum. Ne eğik çizgiyle ne $BACKUP_MNTPOINTde $USER_HOMEbitiyor. EDIT: Şimdi sadece aşağıdaki dizinlere olur teyit edebilirim$BACKUP_MNTPOINT/$USER_HOME
kralyk

Öyleyse $BACKUP_MNTPOINT/$USER_HOMEdoğru izinler var, ancak herhangi bir alt dizin yok mu? Lütfen sorunuzu düzenleyin ve bu ayrıntıları ekleyin. Ayrıca, mkdir $BACKUP_MNTPOINT/$USER_HOME/fooel ile yaparsanız, kullanıcının sahip olduğu bir dizin oluşturup oluşturmadığını açıklayın .
terdon

Evet, mkdir $BACKUP_MNTPOINT/$USER_HOME/fookullanıcının sahip olduğu bir dizin oluşturur.
kralyk

strace(Sahte bir cevapta belirtildiği gibi) ilgili bilgileri görmek gerçekten güzel olurdu .
Pavel Šimerda

Yanıtlar:


18

rsyncSistemimi sunucuma yedeklemek için kullanırken de benzer bir sorun yaşadım . Kullandım:

rsync -aAXSHPr \
-e ssh \
--rsync-path="sudo /usr/bin/rsync/" \
--numeric-ids \
--delete \
--progress \
--exclude-from="/path/to/file/that/lists/excluded/folders.txt" \
--include-from="/path/to/file/that/lists/included/folders.txt" \
/ USER@SERVER:/path/to/folder/where/backup/should/go/

Çözüm, gerçekten bir sorun olmamasıdır. rsyncYanlış izinler ayarlanmış klasörler oluşturduğunu gördüğünüzde işlemi iptal ettiğinizden şüpheleniyorum . En önemli nokta rsync, bir üst klasörün izinlerini ancak tüm alt klasörleri ve dosyaları senkronize ettikten sonra ayarlamasıdır.


1
Vay be, bu hiç bana olmadı, güzel tespit, teşekkürler.
kralyk

0

Belki rsync'i strace / truss üzerinden çalıştırın ve chown () sistem çağrısından bir hata alıp almadığınızı görün ve ayrıca chown () öğesinin doğru yola ve UID / GID değerine sahip olduğunu doğrulayın.


İyi bir yorum ama cevap değil.
Pavel Šimerda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.