SFTP kullanmak yerine tek bir dosya için, gönderen taraftaki cat
veya pv
gönderen ve tee
orta sunucudaki verileri hem orada bir dosyaya göndermek hem de diğer taraftaki başka bir ssh bağlantısı üzerinden bir kopya göndermek için ssh üzerinde dosya oluşturabilirsiniz. sadece verileri bir dosyaya yazar. Tam voodoo gerekli Okuyucu için bir egzersiz olarak bırakacağım, çünkü şu anda oynamak için zamanım yok (üzgünüm). Bu yöntem yalnızca, ikinci hedefe SSH aracılığıyla herkes tarafından erişilebiliyorsa işe yarar; bu, istemci makine olarak tanımladığınız durumda olmayabilir.
Daha az "çalıştır ve bekle" olan ancak aksi takdirde daha kolay olabilen başka bir yaklaşım, rsync
sunucu ve istemci B arasında kullanılmasıdır . Bunu ilk çalıştırdığınızda verilerin kısmi bir kopyasını alabilir, ancak yeniden çalıştırabilirsiniz. daha sonra daha fazla veri almak için (Client1-> Server aktarımı tamamlandığında son bir çalışma ile). Bu, yalnızca sunucu verileri SFTP aktarımı sırasında doğrudan doğru dosya adına koyarsa çalışır (bazen dosya tamamen aktarıldıktan sonra yeniden adlandırılan verilerin geçici bir dosyaya gittiğini görürsünüz - bu, dosya güncelleme daha atomik ama rsync fikrini kullanılamaz hale getirecektir). Ayrıca scp yerine C1-> S transferi için rsync kullanabilirsiniz (--inplace
yukarıda belirtilen sorunu önlemek için seçenek) - rsync kullanmak da büyük bir aktarım sırasında C1-> Server bağlantısı sorunları yaşıyorsa her şeyi yeniden göndermeye karşı koruma sağlar ( rsync --inplace -a --progress <source> <dest>
rsync kullanılabilir olduğunda scp / sftp yerine kullanma eğilimindeyim , çünkü bu "aktarma devam" davranışı).
Yukarıdakileri özetlemek için şunu çalıştırın:
rsync --inplace -a --progress <source> user@server:/<destination_file_or_folder>
client1 üzerinde sonra çalışıyor
rsync --inplace -a --progress user@server:/<destination_file_or_folder> <destination_on_cli2>
ilk aktarım tamamlanana kadar art arda 2 kez (daha sonra her şeye sahip olduğunuzdan emin olmak için bir kez daha çalışır). rsync
her seferinde lotun tamamını aktarmak yerine bir konumu güncellemek için gereken mutlak minimum değeri aktarmak konusunda çok iyidir. Paranoya için --checksum
seçeneği rsync komutlarına eklemek isteyebilirsiniz (büyük dosyalar için çok daha fazla CPU zamanı alır, ancak gerekmedikçe önemli ölçüde daha fazla veri aktarılmasına neden olmaz) ve hız --compress
için veri aktardığınız dosya zaten sıkıştırılmış bir biçimde değil.