Ağ üzerinden dosya göndermenin en kolay yolu


14

Ağ üzerinden diğer bilgisayarlara dosya göndermenin en basit ve çok yönlü yolu nedir? Bununla demek istediğim, şu anda başkalarının kullandığı bilgisayarlar. Bilgisayarda etkin bir oturum açıksa SSH'nin çalıştığını sanmıyorum.

Şimdiye kadar kullanıyorum netcat, bu iyi çalışıyor. Ama bunu yapmanın başka basit yolları var mı? Bir sorunum var netcat, alıcının dosya sonunu bilmesi ve akış için bir isim bulması gerekiyor.


1
Kullanmaya devam etmek netcatistiyorsanız, bir tararşiv gönderebilir ve anında açabilirsiniz . Bu dosya adı sorununu çözecektir ve daha esnektir. Ama sonunda sanırım scpya rsyncda daha kolay bir seçenek.
Marco

Bir katran nasıl gönderilir ve anında çıkarılır?
TomTom

1
Sanırım netcat hostname | tar -xdosyaları koymak istediğiniz dizinde olurdu .
Dmitry Grigoryev

Yanıtlar:


21

Hayatını gereksiz yere karmaşıklaştırıyorsun. Kullanın scp.

Bir dosya aktarmak için myfile dizini için yerel dizinden / foo / bar makine üzerinde otherhost kullanıcı olarak kullanıcı , burada söz dizimi var: scp myfile user@otherhost:/foo/bar.

DÜZENLEME: netcat veya HTTP üzerinden aktarım yapılmazken scp / SSH ile aktarımın şifreli olduğunu belirtmek gerekir. Dolayısıyla, hassas dosyaları aktarıyorsanız, her zaman öncekini kullanın.


scpKullanıcı hesabı için bir şifreye ihtiyacım yok mu?
TomTom

Evet tabi ki. Hesap için bir parolaya ihtiyacınız var user@otherhost.
dr01

2
Hayır, ortak anahtar kimlik doğrulaması kullanıyorsanız parola gerekmez
YoMismo

9
Eğer seçici olmak istiyorsanız Tamam, o devlet izin kimlik doğrulaması gerekiyor olarak user@otherhost.
dr01

1
Ayrıca, bir basitleştirme olarak, kullanıcı adınız her iki makinede de aynıysa, kullanıcı adını hariç tutabilirsiniz. Yine de, uygulanabilir olduğunda sizden bir şifre isteyecektir.
Sildoreth

10

Ayrıca deneyebilirsiniz

python -m SimpleHTTPServer 8180

HTTP üzerinden yürütüldüğü dizindeki dosyaları sunacak, Tarayıcı üzerinden erişebilirsiniz.


Veya performanstan memnun kalmazsanız darkhttpd kullanın.
TNW

1
For Python 3: python3 -m http.server <port>.
dotancohen

Bu seçenek hakkında daha fazla bilgi için buraya bakın: askubuntu.com/a/95607/42073
Erel Segal-Halevi

Teşekkürler! Bazı dosyaları Windows test sistemine almak için mükemmel
QwertyChouskie

9

Eğer memnun iseniz netcatizinsiz girerek dosya adı sorunu geçici olarak çözebilirsiniz tar. Bu aynı zamanda birden fazla dosya göndermeyi ve dizin göndermeyi kolaylaştırır.

Gönderen tarafta kullanım:

tar cf - <files> | nc <host> <port>

Ve alıcı tarafta:

nc -l <port> | tar x

Başka bir çözüm rsyncveya kullanmak olacaktır scp.


Akışın netcatsonundaki bağlantıyı kapatmak için genellikle gönderime -q2 eklerim .
Simon Richter

Bunun neden gerekli olduğunu anlayamıyorum. -qOpsiyon olmadan otomatik olarak kapanır .
Marco

Bu, hangi netcat uygulamasını kullandığınıza bağlıdır. Stdin kapandığında TCP akışının yalnızca bir yönünü kapatan uygulamalar vardır, çünkü diğer yön hala etkin olabilir.
Simon Richter

tar | ssh tarscp'nin düştüğü ve rsync'in kullanılamadığı durumlarda da çok güzel çalışır.
ocaklar

2

Tabii sshbaşka bir oturum açıksa çalışır. Sadece yapabilirsin

ssh user@host cat /path/to/file.tar  > localfile.tar

Veya yerel dizininize kopyalamak için:

scp user@host:/path/to/file.tar .

Bunun tersi mümkün mü örneğin ssh lubuntu '>newfile.txt' <file.txt?
heemayl

1
@heemayl evet, uzak bir dosyaya kedi, yapmak cat local.file | ssh user@host "cat > remote.file", ya da ssh user@host "cat > remote.file" < local.file.
terdon

0

Her iki ana bilgisayar aynı LAN'daysa , woos kullanabilirsiniz .

Kullanımı son derece basittir.

Gönderen ve alıcı internette HER YERDE ise ve BÜYÜK DOSYALARI aktarmanız gerekiyorsa, F * EX yüklemeniz gerekir: http://fex.belwue.de/index.html


1
temel scp de son derece basittir ve yazarları tarafından tanıtılan bu ev yapımı araçların aksine, milyonlarca kişi tarafından gerçekten dağıtılan, güvenilen ve kullanılan bir araç.
Jack Wasey
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.