it-swarm-tr.com

Favori rsync ipuçları ve püf noktaları

rsync'ı ne kadar çok kullanırsam, dosya aktarımının İsviçre çakısı olduğunu o kadar çok anlarım. Çok fazla seçenek var. Geçenlerde --remove-source-files ve kopyalandığında kaynaktan bir dosyayı siler, bu da programı kopyalamak yerine biraz daha hareket ettirir. :)

En sevdiğiniz küçük rsync ipuçları ve püf noktaları nelerdir?

57
Rory

Çok sayıda dosyayı senkronize etmeniz gerekiyorsa rsync sürüm 3'ü kullanmayı deneyin! V3, dosya listesini aşamalı olarak oluşturur ve çok daha hızlıdır ve sürüm 2'den daha az bellek kullanır.

Platformunuza bağlı olarak bu oldukça fark yaratabilir. OSX 2.6.3 sürümünde bir saatten fazla sürecek veya 5 milyon dosyadan oluşan bir dizin oluşturmaya çalışırken çökecek. Derleme 3.0.2 sürümü derhal kopyalamaya başladı.

19
robcast

--link-dest alandan tasarruf sağlayan anlık görüntü tabanlı yedeklemeler oluşturmak için, yedeklenen verilerin birden fazla tam kopyasına sahip olduğunuz (her yedekleme çalışması için bir tane) göründüğünüz, ancak çalışmalar arasında değişiklik yapmayan dosyalar zor Yer tasarrufu sağlayan yeni kopyalar oluşturmak yerine.

(aslında, hala rysnc- ardından -cp -al aynı şeyi başaran yöntem, bkz. http://www.mikerubel.org/computers/rsync_snapshots/ eski ama yine de çok iyi bir düşüş için teknikler ve ilgili konular)

Bu tekniğin en büyük dezavantajı, bir dosya disk hatası nedeniyle bozuksa, o dosyaya bağlanan tüm anlık görüntülerde bozuk olduğu, ancak buna karşı iyi derecede koruyacak çevrimdışı yedeklemelerin de olmasıdır. Dikkat edilmesi gereken diğer bir şey, dosya sisteminizde yeterli sayıda inode bulunması veya disk alanınız bitmeden önce bunlardan kaçmanızdır (ext2/3 varsayılanlarıyla hiç bir sorun yaşamadım).

Ayrıca, çok yararlı --dry-run biraz sağlıklı paranoya için, özellikle de --delete* seçenek.

18
David Spillett

Yavaş bir bağlantı üzerinden bazı büyük dosyaları içeren bir web sitesini güncellemeniz gerekiyorsa, küçük dosyaları şu şekilde aktarabilirsiniz:

rsync -a --max-boyut = 100K/var/www/orada:/var/www /

büyük dosyalar için bunu yapın:

rsync -a --min-size = 100K --blimlim = 100/var/www/orada:/var/www /

rsync, web siteleri için kullanışlı birçok seçeneğe sahiptir. Ne yazık ki, eşzamanlı güncellemeleri tespit etmek için yerleşik bir yolu yoktur, bu nedenle büyük dosyaların çakışmasını önlemek için cron komut dosyalarına mantık eklemeniz gerekir.

14
Bob

Bir dizindeki dosyaların küçük bir alt kümesini başka bir konuma eşzamanlı tutmaya çalışırken --existing seçeneğini kullanıyorum.

10
TCampbell

--rsh benim.

Ssh üzerindeki şifreyi daha hızlı bir şeye değiştirmek için kullandım (--rsh="ssh -c arcfour") ayrıca sshs zincirini ayarlamak için (ssh-agent) doğrudan konuşamayan ana bilgisayarlar arasında dosya senkronize etmek için. (rsync -av --rsh="ssh -TA [email protected] ssh -TA -l userB" /tmp/foobar/ hostB:/tmp/foobar/).

--time-limit

Bu seçenek kullanıldığında, rsync T dakika sonra duracak ve çıkacaktır. Ben bu seçenek gece (meşgul olmayan saatler) büyük miktarda veri rsyncing ve sonra insanların gündüzleri (meşgul saat), ağ kullanmaya başlama zamanı geldiğinde durdurma yararlı olduğunu düşünüyorum.

--stop-at=y-m-dTh:m

Bu seçenek rsync'i hangi zamanda durduracağınızı belirlemenizi sağlar.

Batch Mode

Toplu mod, aynı güncelleştirme kümesini birçok özdeş sisteme uygulamak için kullanılabilir.

7
jftuga

Yavaş çalışan bir rsync'in ne kadar ilerlediğini merak ediyorsanız ve dosyaları aktarıldıkça listelemek için -v kullanmadıysanız, hangi dosyaları açtığını öğrenebilirsiniz:

 ls -l /proc/$(pidof rsync)/fd/*

/ proc olan bir sistemde

Örneğin. Uzak sistemde bir sürü alan kalmış gibi görünse de, rsync benim için asıldı. Bu hile, hatırlamadığım ve diğer tarafa sığmayan beklenmedik büyüklükte dosyayı bulmama yardımcı oldu.

Ayrıca bana biraz daha ilginç bilgiler verdi - görünüşte vazgeçildi, çünkü kırık bir soket bağlantısı da vardı:

/proc/22954/fd/4: broken symbolic link to `socket:[2387837]'
6
nealmcb

--archive, yedekleme benzeri işler için standart bir seçimdir (varsayılan olmasa da), bu da kaynak dosyalardaki meta verilerin (izinler, sahiplik vb.) çoğunun kopyalanmasını sağlar.

Ancak, bunu kullanmak istemiyorsanız, çoğu zaman --times, dosyaların değişiklik zamanları boyunca kopyalanır. Bu, bir sonraki rsync'i çalıştırır (tekrar tekrar yaptığınızı varsayarak) çok daha hızlıdır, çünkü rsync değişiklik sürelerini karşılaştırır ve değişmediyse dosyayı atlar. Şaşırtıcı bir şekilde (en azından benim için) bu seçenek varsayılan değildir.

5
Andrew Ferrier

Benimki --inplace. Yedekleme sunucusu ZFS veya btrfs çalıştırdığında ve yerel anlık görüntüler oluşturduğunuzda harikalar yaratır.

4
Hubert Kario

En çok kullandığım kesinlikle --exclude-from hariç tutulacak şeyler içeren bir dosya belirtmenizi sağlar.

Ayrıca --chmod çok kullanışlıdır, çünkü kaynağınız karışsa bile izinlerin istenen bir durumda olmasını sağlar.

4
innaM

--backup-dir = date +%Y.%m.%d --delete Siliyoruz ancak bir kopya yapıyoruz ... ne olur ne olmaz

4
Konrad

Tabii ki, ayrıca --delete, kaynakta bulunamayan şeyleri hedeften kaldıran.

3
innaM

cwrsync - Windows için Rsync http://www.itefix.no/i2/node/1065

Bu sürüm OpenSSH içerir, böylece dosyaları güvenli bir kanal üzerinden aktarabilirsiniz.

2
jftuga
--partial 

Kesinti durumunda

--bwlimit=100

Bant genişliğini sınırlamak için - büyük dosyaları, dizinleri kopyalamak için iyi

2
rebelbass

Sunucuda rsync bir arka plan programı olarak ayarlandıysa, paylaşılan modüllere diğer dizin listeleri gibi göz atabilirsiniz. Sonra hangi yolların mevcut olduğunu ve hangilerinin olmadığını görebilirsiniz.

1
sybreon

glusterFs kullanırken sıfır boyutlu T dosyalarıyla bir darboğazımız var, çökmüş tuğla veya çoğaltma arasında senkronizasyon için --min-size=1 kilitlenen sunucudan boş dosyayı senkronize etmemek için

1
vahid chakoshy