rsync: en üstteki dizini hariç tutma


14

Yani, görünüşte basit bir sorunum var, ama şimdiye kadar bir çözüm bulamadım: Hala tüm çocuklarını senkronize ederken en üstteki dizini bir rsync'den hariç tutmak istiyorum. Buradaki en önemli sorun, en üstteki dizinin saatlerini değiştirme iznimin olmaması, ancak tüm çocukların düzgün bir şekilde senkronize edilmesini istemem.

Kullandığım rsync komutu aşağıdaki gibidir:

rsync --exclude ./ -rlptDu ./ server.example.com:/usr/local/directory/

ve server.example.com:/usr/local/directory/şuna benzer:

drwxrws---  5 root   staff 24576 Jul  9 15:00 .

(yerel kullanıcımın üyesi staff)

Ben rsync çalıştırdığınızda, aşağıdaki hatayı alıyorum:

rsync: failed to set times on "/usr/local/directory/.": Operation not permitted (1)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1070) [sender=3.0.9]
make: *** [pub_to_mel_internal] Error 23

Bu, yerel makinede 3.0.9 ve uzaktan kumandada 3.0.7'dir, her iki makine de Debian ile çalışır.


Bu örnekteki sözdizimini biliyor musunuz: wirespeed.xs4all.nl/mediawiki/index.php/… Aksi halde hariç tutulan bir dizinden belirli dosyaları / dizinleri eklemenizi sağlar. Yine de bir hariç tutma dosyası kullanmanız gerekebilir.
jippie

Evet. Sorun, üst düzey dizini (özellikle) hariç tutmaya ikna edemiyorum. Geçmişte karıştırma / hariç tutma konusunda sorun yaşamadım, üst düzey özel bir durum gibi görünüyor.
Steve Pomeroy

Yanıtlar:


8

Bence rsync'in filtre kuralları üst düzey dizine uymuyor, bu yüzden her zaman senkronize. Çözüm, dizinin kendisi yerine bu dizindeki tüm dosyaları eşitlemektir.

rsync -rlptDu -- * server.example.com:/usr/local/directory/

Ekle .[!.]*sonra *, en üstteki dizinde nokta dosyanız varsa ve ..?*iki nokta ile başlayan dosya adlarını varsa.


2
Harika, teşekkürler! Bu çalışır. Bu tekniğin tek dezavantajı, kabuğun tüm dosyaları seçmesini gerektirmesidir. Eğer dizinde tonlarca dosya varsa (ki bu benim durumumda değil), boğulma olabilir. Bu muhtemelen xargs kullanılarak düzeltilebilir (--delete seçeneklerinde olmasa da).
Steve Pomeroy

Ben kullanarak var bir problem *oldu --deleteonlar aramada bir parçası değildi, çünkü herhangi bir dosyayı silmek vermedi.
thomasa88

@ thomasa88 Lütfen bu cevaba bakınız .
Kamil Maciorowski
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.