Özyinelemeli scp aktarımına devam et (rsync ile?)


14

Ben scp üzerinden her ~ 1MB birkaç bin dosya aktarıyordu ve ilk 2k dosyaları ya da öylesine sonra bağlantım kesildi. Başından itibaren özyinelemeli aktarıma devam etmenin bir yolu olup olmadığını bilmek istedim. Gibi bir şey

$ scp -r me@host.com:/datafiles/ ./
... Happy Transfer ...
...     BREAK!     ...
$ rsync -P me@host.com:/datafiles/ ./
... Continue transf...

Sorun şudur: Eğer sözdizimi doğru ise mümkün değil. Herkes yapılabilirse / nasıl yapılacağına ışık tutabilir mi?

PS. Eğik çizgiyi rsync satırında "datafiles" ifadesinden sonra belirtirseniz, dizin veya içeriği aktarılır mı? Google'a girdiğimde çelişkili yorumlar gördüm.

Yanıtlar:


10

Yerel bir makineden uzak bir ana bilgisayara yeniden senkronize ediyorsanız, bu işe yarar:

rsync -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/

Teşekkürler. Bunun tüm dosyalarımı listelemeye başlayacağı için çalıştığını düşünmüyordum, ancak "dosya aktarımı" nı gösterdiğini fark etmedim. Doğru benim transfer bıraktı gerçek (yavaş) transferleri ile aldı.
physicsmichael

Hmm, benim ssh -i akey.pemiçin gerekli ve -ibu komutlarla çalışmak için rol alamıyorum .
izomorfizmalar

2
Büyük bir dosya devam ettirmek için çalışıyorsanız, bu seçenekler yararlı olabilir: --partial --inplace --no-whole-file.
Rafael Xavier

@kibitzer - dosyayı (uzak sunucuda) gösterdiğinde aktarımı nasıl yeniden başlattınız? Benimki sadece liste dosyasını oluşturmak ve bana dosyayı ve ne kadar yüklendiğini gösterir. Ancak, çıktıya devam etme veya ilerleme seçeneği olmadan takılır. Aktarım yeniden başladı mı yoksa başlatmak için bir şey yapmam gerekiyor mu?
23:14

3
-lgerekli değil. Tarafından ima edildi-a
Guido

11

Aşağıdaki satır bunun için hile yapmalıdır:

rsync - kısmi - ilerleme --rsh = ssh -r me@host.com: / datafiles / ./

Bunu daha önce yinelemeli dizinler için kullanmadım, ancak kısa mesaj gönderdiğimde beklendiği gibi çalışıyor gibi görünüyordu.


1
Bu, -r =) dahil ettiğiniz sürece de işe
yarar

Rsync transferlerimin çoğu "rsync -ahP bir şey / user @ host: / somewhere /" türündedir. --Rsh = ssh tamamen gereksizdir. Sonra, -P de --partial ve - ilerleme halinde sürükler.
killermist

1

Yalnızca "-r" eklediyseniz, listelediğiniz rsync komutu çalışır. ancak büyük olasılıkla "-a" ve "-v" de istersiniz.

Ve sondaki eğik çizgi hakkında, me@site.com: / data / / data / * ile eşdeğerdir, başka bir deyişle, bir eğik çizgi eklerseniz tüm içeriği kopyalar. ancak me@site.com: / data dizinin kendisi olacaktır [ve doğal olarak alt klasörleri]


1

Kibitzer ve Tyler'ın cevaplarını birleştirmek benim için en iyi sonucu verdi:

rsync --partial --progress -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/

(özyinelemeli olarak yeniden gönderme ve her dosyanın ilerlemesini gösterme)

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.