Bu rsync
geçmişte de karşılaştım. Benim için düzelten çözüm screen
, uzak sunucuya bağlantının korunmasına yardımcı olabilecek bir oturumda çalıştırıyordu .
screen -LS rsync
[execute your rsync command]
Ctrl-A+D to detach from the session
Durumu çalıştırarak kontrol edebilirsiniz screen -x rsync
(ya da oturuma ad vermeye karar verdiğiniz herhangi bir ad verirseniz, bu gerekli değildir). Bu işlem geçerli kabuğunuzu o oturuma yeniden ekleyecektir. Durumu kontrol ettikten sonra arka planda çalışmaya devam etmesi için tekrar ayırmayı unutmayın.
screen
[Arıza yanılıyorsam lütfen biri beni düzeltin] yaparak arızalı bir swoop'ta arka planda çalıştırılacak komutu da çalıştırabilirsiniz screen -dm 'command'
. man screen
Sonuncusunu denemeden önce isteyebilirsiniz .
DÜZENLE:
Cevabımı düzenliyorum çünkü screen
bu senaryoda hiçbir yardım sağlamadığını onayladınız , ancak scp
ne tür sonuçlar aldığınızı ve ne kadar garip bir şekilde cevap verdiğinizi görmek için yorumuma cevap verdiniz, gayet iyi çalıştı.
: Yani benim yeni cevap şudur kullanımı scp
- ya ssh
(ile tar
) - yerinersync
Kabul, scp
gibi özellikleri büyük sayıda desteklemez rsync
, ama aslında o sadece kaç özelliklerini keşfetmek için şaşıracaksınız yapar neredeyse olan desteğini özdeş o kadar rsync
.
Gerçek dünya senaryoları scp
ve diğer alternatifler rsync
:
Geriye dönersek, geliştiricilerin sorun giderme amacıyla erişebilmeleri için günlükleri üretim sunucularımızdan alıp yerel olarak bir web sunucusunda depolayacak bir kabuk komut dosyası oluşturmakla görevlendirildim. Unix ekibinin rsync
sunucularımıza yüklenmesini başarısızlıkla denedikten sonra, aynı şekilde çalışan bir geçici çözüm buldum scp
.
Varlık kullandığı tüm böylece Geçenlerde senaryoyu modifiye dedi ssh
ve tar
- GNU tar
/ gtar
, tam olarak. GNU tar
aslında içinde bulacaksınız seçeneklerin çoğunu destekler rsync
gibi --include
, --exclude
vb izni / nitelik korunması, sıkıştırma,
Şimdi bunu başarmanın yolu ssh
, uzak sunucuya (pubkey auth üzerinden) geçerek ve kullanmaktır gtar -czf - [other options such as --include='*.log' and --exclude='*core*', etc.]
- bu, tüm bilgileri yazar stdout
, bu daha sonra [yerel olarak] 'a aktarılır , tar -xzf
böylece uzak üretim sunucusunda hiçbir değişiklik yapılmaz ve olduğu gibi çekilen tüm dosyalar yerel sunucuya. rsync
Bu durumda harika bir alternatif . Ne önemli ne tar
de scp
destek olan tek şey , artımlı yedeklemeler ve bu rsync
özellikleri kontrol eden blok düzeyinde hata düzeyidir .
Kullanırken bahsettiğim tam komut ssh
ve tar
böyle bir şey olurdu (remote Solaris 10; yerel Debian, ne için değer):
cd /var/www/remotelogs
ssh -C user@remotehost "cd /path/to/remote/app.directories; gtar -czf - --include='*.log' --exclude='*.pid' --exlude='*core*' *" | tar -xz
Senaryonuzda bunun tam tersi olacaktır - tar -cf -
yerel olarak ve uzak sunucuya aktarım yoluyla ssh user@remotehost "tar -xf -"
- bu tür davranışlara atıfta bulunan ancak çok fazla ayrıntıya girmeyen başka bir cevap var.
İşleri hızlandırmak için eklediğim birkaç seçenek daha var. Yürütme süresini mümkün olduğunca düşük hale getirmek için her şeyi acımasızca zamanladım. tar
İle sıkıştırma kullanmanın anlamsız olacağını düşünürsünüz , ancak aslında sıkıştırmayı etkinleştirmek için -C
bayrağını kullanırken olduğu gibi işleri biraz hızlandırır . Bu yazıyı, kullandığım (yayınladığımla çok benzer) tam komutu içerecek şekilde daha sonraki bir tarihte güncelleyebilirim, ancak bu hafta tatildeyken şu anda VPN'e girmek istemiyorum.ssh
ssh
Solaris 10'da da kullanıyorum -c blowfish
, çünkü kimlik doğrulaması yapmak için en hızlı şifre ve aynı zamanda işleri biraz hızlandırmaya yardımcı oluyor, ancak Solaris 11'imiz ya desteklemiyor ya da bu şifre paketini devre dışı bırakıyor.
Ayrıca, ssh
/ tar
seçeneğiyle gitmeyi seçerseniz, screen
biraz zaman alacak bir yedekleme yapıyorsanız , orijinal çözümümü uygulamak iyi bir fikir olacaktır. Değilse, ssh_config
cihazınızdaki tutma / zaman aşımı ayarlarınızın doğru ayarlandığından emin olun , aksi takdirde bu yöntemin de kırık bir boruya neden olması muhtemeldir.
Birlikte olsanız bile scp
, her zaman kullanmak için en iyi uygulama olduğunu screen
veya tmux
bu tür bir işlemi yaparken, her ihtimale karşı bulurum . Birçok kez kendi tavsiyemi takip etmiyorum ve bunu yapamıyorum, ancak aktif kabuk oturumunuzun bir şekilde bağlantısının kesilmesi nedeniyle uzak işin yorulmamasını sağlamak için bu araçlardan birini kullanmak gerçekten iyi bir uygulamadır.
rsync
Sorunun temel nedenini bulmak istediğini biliyorum . Ancak, bu gerçekten önemliyse, bu arada deneyebileceğiniz iki harika geçici çözümdür.
kerberos
de uzak sunucuda kimlik doğrulaması yapmak için kullandığımı eklemeliyim .