Bu rsyncgeç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 screenSonuncusunu denemeden önce isteyebilirsiniz .
DÜZENLE:
Cevabımı düzenliyorum çünkü screenbu senaryoda hiçbir yardım sağlamadığını onayladınız , ancak scpne 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, scpgibi ö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ı scpve 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 rsyncsunucuları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 sshve tar- GNU tar/ gtar, tam olarak. GNU taraslında içinde bulacaksınız seçeneklerin çoğunu destekler rsyncgibi --include, --excludevb 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 -xzfböylece uzak üretim sunucusunda hiçbir değişiklik yapılmaz ve olduğu gibi çekilen tüm dosyalar yerel sunucuya. rsyncBu durumda harika bir alternatif . Ne önemli ne tarde scpdestek olan tek şey , artımlı yedeklemeler ve bu rsyncözellikleri kontrol eden blok düzeyinde hata düzeyidir .
Kullanırken bahsettiğim tam komut sshve tarbö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 -Cbayrağı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.sshssh
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/ tarseçeneğiyle gitmeyi seçerseniz, screenbiraz zaman alacak bir yedekleme yapıyorsanız , orijinal çözümümü uygulamak iyi bir fikir olacaktır. Değilse, ssh_configcihazı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 screenveya tmuxbu 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.
rsyncSorunun temel nedenini bulmak istediğini biliyorum . Ancak, bu gerçekten önemliyse, bu arada deneyebileceğiniz iki harika geçici çözümdür.
kerberosde uzak sunucuda kimlik doğrulaması yapmak için kullandığımı eklemeliyim .