SSH üzerinden rsync, ya da başka bir şey?


10

Üzerinde fazla kontrolüm olmayan OSX Linux veya Unix kutusunda rsync kullanmaya çalışıyorum. Böyle bir şey yaptım

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/ 

Döndürülen hata:

bash: rsync: komut bulunamadı rsync: bağlantı beklenmedik şekilde kapatıldı (şu ana kadar 0 bayt alındı) [alıcı] rsync hatası: /SourceCache/rsync/rsync-37.3/rsync/io.c(452 adresinde uzaktan komut bulunamadı (kod 127) ) [alıcı = 2.6.9]

Ancak, belgeleri okuduktan sonra aslında uzak ana bilgisayara bir rsync arka plan programı yüklemem gerektiğini düşünmeye başladım.

  1. Uzak ana bilgisayara bir rsync sunucusu yüklemeli miyim?
  2. Uzak ana bilgisayara hiçbir şey yüklemeyi gerektirmeyen ücretsiz alternatifler - GUI veya GUI olmayan - ?

Teşekkürler!


1
Mevcut komutunuzla ilgili kesin sorunlar nelerdir?
fideli

@ fideli, üzgünüm, unutmuşum. Soruyu şimdi düzenleme
Dan Rosenstark

1
Bu soru için teşekkürler, ama rsynclütfen etiketleyebilir misiniz ?
Andrew Grimm

Yanıtlar:


21

Sunucuda rsync komutuna ihtiyacınız var, ancak bir daemon çalıştırmanıza gerek yok.

Sunucuda çalıştığı, evde bir yerlerde koyun ve komut satırına bu bayrağı eklemek rsync ikili alın: --rsync-path=/home/user/path/to/rsync.

Rsync'i sunuculara kopyalamak istemiyorsanız scp veya sshfs kullanabilirsiniz.

sshfs user@host ~/sync/user-host
rsync -av ~/local-dir ~/sync/user-host/remote-dir

Bu durumda rsync tamamen yerel olarak çalışır, ancak değişiklikler sunucuya yayılır.


Özellikle sunucu GoDaddy üzerinde ucuz bir barındırma planı olduğu için bu çözümü çok beğendim ve rsync'i sunucuda çalıştırabileceğimden şüpheliyim. Şimdilik +1!
Dan Rosenstark

Sshfs'yi OSX'e yüklemek için gitmek için en kolay yol nedir? MacFuse veya daha kolay bir şey var mı?
Dan Rosenstark

MacFuse + (MacFusion veya sshfs-static-leopard), sanırım (OSX kullanıcısı değilim)
Tobu

Evet MacFuse bunu yapıyor. Sadece sshfs ikili dosyasının indirme sayfası, .gz uzantılı ikili dosyayı size verir. Bu yüzden silahşörler yerine yeniden adlandırmalısınız. Can sıkıcı ama şimdi tamam! Teşekkürler
Dan Rosenstark

6

Uzak ana bilgisayarda rsync olması gerekir - mutlaka bir rsync sunucusu değil (ki, ssl bağlantısını yine de işlemeyeceğini düşünüyorum), ancak yerel kutudaki rsync'in uzak kutudaki bir rsync ile konuşması gerekiyor. İkisini bağlamak için ssh kullanıyorsunuz.

Uzak kutuda rsync bulunduğunu varsayarsak, oturum açmış olduğunuz ssh'niz için varsayılan arama yolunda değildir. Uzak kutudaki tercihlerinize ve izinlerinize bağlı olarak deneyebilirsiniz

  • --rsync-path = seçeneğini kullanma
  • uzak ssh kabuğunuz için varsayılan PATH'ı değiştirme
  • uzak ssh kabuğuna rsync için bir diğer ad ekleme
  • çalıştırılan uzak komutun rsync için mutlak yola değiştirilmesi

Veya benzeri. Uzak ana bilgisayarda yürütülebilir (yardımcı sunucu) olarak rsync yoksa, eklenmesi gerekir.


Bu yardımcı oldu, bu yüzden + 1, ama Mac gibi PC'ye böyle çalıştırıyorsanız, Windows tarafında rsync için başlangıç ​​dizini belirtmek nasıl merak ediyorum: superuser.com/questions/1462861/…
Ryan

1

Yukarıda önerilen yaratıcı sshfs çözümüne rağmen, uzak ana bilgisayarda bir rsync arka plan programı çalıştırmadan rsync kullanmanın pek bir anlamı yoktur. Rsync'deki tüm verimlilik fikri, iki örneğin sağlama toplamlarını yerel olarak hesaplayarak, ağ üzerinden karşılaştırarak ve yalnızca bu dosyaların gerçekten farklı olan kısımları için gerçek verileri ileterek veri kümesinin yerel kopyalarını karşılaştırmasını sağlamaktır.

Sshfs veya herhangi bir ağ bağlantısı kullanıyorsanız, yalnızca sağlama toplamlarını yerel olarak hesaplamak için tüm veri kümesini ağdan uzak ana bilgisayardan kopyalamak ve ardından farklılıkları iletmek zorunda olduğu gerçeğini gizler. Her şeyi yerel olarak silmek ve lotu 'scp -r' yapmak daha hızlı ve daha ucuz olurdu.


3
Tam olarak değil, çünkü rsync dosyaların boyut ve zaman damgasına göre değiştirilip değiştirilmediğini kontrol eder ve bu hala tüm dosyaları scp'lemekten çok daha verimlidir. Ancak, dosyalar içindeki rsync artımlı güncelleme mekanizması sshfs üzerinde anlamlı değildir.
Jaap Eldering

0

SCP'yi deneyin . Zaten ssh erişiminiz olduğundan uzak ana bilgisayara başka bir şey yüklemenize gerek yoktur :)

Uzak ana bilgisayardan localhost'a dosya kopyalamak için şunu kullanın:

# scp -R remoteuser@remotehost:/remote/dir /this/dir/ 

Veya localhost'tan uzak ana bilgisayara dosya kopyalayın:

# scp -R /this/dir remoteuser@remotehost:/remote/dir 

1
Teşekkürler Lee, SCP harika ama "senkronizasyon" yapmıyor değil mi?
Dan Rosenstark

1
küçük bir "r" olmalı:scp -r
0x4a6f4672
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.