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.