Найпростіший спосіб надсилання файлів по мережі


14

Який найпростіший і універсальний спосіб надсилання файлів по мережі на інші комп'ютери? Під цим я маю на увазі комп'ютери, якими користуються інші люди на даний момент. Я не думаю, що SSH працює, якщо на комп'ютері відкрита активна сесія.

Поки я використовую netcat, що працює добре. Але чи існують інші прості способи зробити це? Одна з проблем, що я маю netcat, полягає в тому, що одержувач повинен знати, що файл закінчується, і повинен придумати ім'я потоку.


1
Якщо ви хочете продовжувати користуватися, netcatви можете надіслати tarархів і витягнути його на льоту. Це вирішить проблему з іменем файлу, і це більш гнучко. Але врешті-решт я здогадуюсь scpчи rsyncпростіший варіант.
Марко

Як би відправити дьоготь і витягнути його на льоту?
TomTom

1
Я припускаю, що це буде netcat hostname | tar -xв каталозі, куди ви хочете розмістити файли.
Дмитро Григор’єв

Відповіді:


21

Ви ускладнюєте своє життя без потреби. Використовуйте scp.

Щоб передати файл MYFILE з локального каталогу в каталозі / Foo / бар на машині otherhost як користувач користувач , ось синтаксис: scp myfile user@otherhost:/foo/bar.

EDIT: Варто зазначити, що передача через scp / SSH шифрується, а передача через netcat або HTTP не є. Тож якщо ви передаєте чутливі файли, завжди використовуйте перший.


Мені не потрібен пароль для scp облікового запису користувача?
TomTom

Так, звісно. Вам потрібен пароль для облікового запису user@otherhost.
dr01

2
Ні, вам не потрібен пароль, якщо ви використовуєте автентифікацію відкритих ключів
YoMismo

9
Гаразд, якщо ви хочете бути прискіпливими, давайте заявляємо, що вам належить пройти автентифікацію якuser@otherhost .
dr01

1
Крім того, для спрощення, якщо ваше ім'я користувача на обох машинах однакове, ви можете виключити ім’я користувача. Однак, він все одно запитає вас про пароль, якщо це можливо.
Сілдорет

10

Ви також можете спробувати

python -m SimpleHTTPServer 8180

Він буде обслуговувати файли в каталозі, в якому він виконується через HTTP, ви можете отримати доступ до нього через браузер.


Або використовуйте darkhttpd, коли ви не задоволені роботою.
TNW

1
Для Python 3: python3 -m http.server <port>.
dotancohen

Дивіться тут для отримання додаткової інформації про цей варіант: askubuntu.com/a/95607/42073
Segal-Halevi

Спасибі! Ідеально підходить для отримання декількох файлів на тестову систему Windows
QwertyChouskie,

9

Якщо ви задоволені, netcatможете вирішити проблему з назвою файлу шляхом втручання tar. Це також спрощує надсилання декількох файлів одночасно, а також надсилання каталогів.

З боку надсилання:

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

І на стороні, що приймає:

nc -l <port> | tar x

Іншим рішенням буде використання rsyncабо scp.


Я зазвичай додаю -q2 також до відправки netcat, щоб змусити його відключити з'єднання в кінці потоку.
Саймон Ріхтер

Я не розумію, чому цього потрібно вимагати. Він вимикається автоматично без -qможливості.
Марко

Це залежить від того, яку мережеву реалізацію ви використовуєте. Є реалізації, які закривають лише один напрямок потоку TCP, коли stdin закривається, тому що інший напрямок все ще може бути активним.
Саймон Ріхтер

tar | ssh tarтакож дуже добре працює у випадках, коли scp падає, а rsync недоступний.
панно

2

Звичайно sshпрацює, якщо ще одна сесія відкрита. Можна просто зробити

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

Або скопіюйте у свій локальний каталог:

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

Чи можливо навпаки, наприклад ssh lubuntu '>newfile.txt' <file.txt?
heemayl

1
@heemayl так, щоб потрапити у віддалений файл, ви б це зробили cat local.file | ssh user@host "cat > remote.file", або ssh user@host "cat > remote.file" < local.file.
terdon

0

Якщо обидва хости знаходяться в одній локальній мережі, ви можете використовувати вуо .

Це надзвичайно просто у використанні.

Якщо відправник та одержувач ВСЕ ВІДНІМАТИ в Інтернеті, і вам потрібно передати ВЕЛИЧІ ФАЙЛИ, вам слід встановити F * EX: http://fex.belwue.de/index.html


1
базовий scp також надзвичайно простий, і це інструмент, який фактично поширюється, довіряється і використовується мільйонами людей, на відміну від цих домашніх інструментів, які, як видається, рекламуються їх автором.
Джек Уейсі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.