SCP özyinelemeli dosya aktarım sırası


11

Dosyaları aktarırken bir sıralama düzeni belirtmenin mümkün olup olmadığını merak ediyorum scp.

Örneğin: $ scp -r "user@host:/path/to/download/" .

[... files download in a seemingly random order ...]

Belki de bu scpişlevlerle nasıl ilişkili olabileceğinden , ssh'yi kaynak (sunucu) tarafında yapılandırmanın bir yolu var, böylece dosyalar örneğin artan dosya adı sırasına aktarılır mı?

Yanıtlar:


4

Sorunu tarve boru saydamlığını kim çözebilirim ssh. Aşağıda bir örnek görülebilir, uzak PC adlandırılır bar. Testten önce, /tmp/fooyürüterek üç boş dosya oluşturdum ssh bar 'mkdir /tmp/foo ; touch /tmp/foo/{a,b,c}'.

$ ssh bar 'cd /tmp/foo ; ls | sort -r | tar -cT -' | tar -xv
c
b
a
$ ls -l a b c
-rw-r--r-- 1 dnet dnet 0 nov   29 17:07 a
-rw-r--r-- 1 dnet dnet 0 nov   29 17:07 b
-rw-r--r-- 1 dnet dnet 0 nov   29 17:07 c

-TBayrağı tarmarkaların önümüzdeki parametresinden paketi için dosya adlarını okur ve -standart girdi demektir. Şimdi, dosya adının içine ls(örnekte olduğu gibi) veya finddaha zor görevler için gelebilecek olan boru adını eklemeniz yeterlidir . Bu kurulumla, sortdosyaların SSH yoluyla iletileceği kesin sırayı belirtmek için kullanabilirsiniz (bu durumda, -rdosyaları ters alfabetik sırada sıralanır). -vYalnızca paketin son ilave edilir tarsipariş görülebilir, böylece.


Woah, harika bir alt düzey yaklaşım ve daha geniş resmi net bir şekilde sunma. Teşekkür ederim.
Dmitry Minkovsky

Böyle bir yaklaşım dosyaları arşiv yerine tek tek aktarmak için nasıl genişletilebilir? Sonuçları üzerinde yineleme bir döngü misiniz sortiçinde barnasılsa uzak komuta Bunu gerçekleştirmek?
Dmitry Minkovsky

Olabilir, ama bir arcive olarak aktarma problemini görmüyorum. Bunu düşünürseniz, bu yaklaşım ve scpher dosya için hem meta veri hem de içerik gönderme arasında çok fazla fark yoktur , sadece farklı bir "protokol" kullanırlar. Sanırım sonuçlar üzerinde yineleme yapabilirsiniz, ancak daha sonra adlarında boşluk olan dosyalara dikkat etmelisiniz.
dnet

2
@dimadima, cevabı çok beğendiyseniz, belki de cevabı kabul edebilirsiniz .
Peter V.Mørch

Bu cevap işe yarıyor, ancak dosya adlarında boşluk olduğunda kişi bunu duruma göre ayarlamalıdır.
Ruslan

1

Alfabetik sırayla dosya aktarımı elde edilebilir rsync:

rsync -P -e ssh -r user@remote_host:/some_path local_path

Pkısmi indirmeye izin verir e, SSH protokolünü ayarlar ve ryinelemeli olarak indirir.


0

Bunun birine yardımcı olması durumunda, burada basit bir çözüm sağladım:

/programming/23067175

Hala bunu yapmak için daha akıllıca bir yol bekliyorum!


1
Bu sadece bir link. Tam bir cevap için cevabı buraya girin ve referans için bağlantıyı sağlayın.
Kevin Panko
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.