Простая передача файлов

17

При наличии двух блоков Linux в локальной сети, какой самый простой способ передачи файлов между ними?

Дэвид Торнли
источник

Ответы:

22

Я использую scp.

scp source desthost:/path/to/dest/.

скопировать с локального компьютера на удаленный компьютер, или

scp srchost:/path/to/file/file .

скопировать с удаленного компьютера на локальный компьютер.

Если имя пользователя не совпадает на удаленном компьютере,

scp user@srchost:/path/to/file/file .
KeithB
источник
3
Я хотел бы добавить, что вы можете использовать опцию -r с scp для рекурсивного копирования всего каталога scp -r исходный ресурс: / path / to / dest /
Стив Бурдин
1
@ Steve_ Хорошая мысль. Также -C будет сжимать файлы по мере их передачи, что может помочь при медленных ссылках.
KeithB
Это scpили rsyncдля меня.
Джош К
6

Я обычно монтирую каталог через ssh через FUSE и sshfs.

Установить:

$ sshfs name@server:/path/to/dir /path/to/mount/point

Отсоединение:

$ fusermount -u /path/to/mount/point
Maik
источник
5

Я использую netcat (если мне не нужна безопасность)

nc -l -p 1234 < send_file   # 'server'
nc x.y.z.t 1234 > receive_file  # 'client'
nc3b
источник
2
Мне особенно нравится этот комбо:tar -c files and folders/ |pv -cN in|lzop|pv -cN out|nc x.y.z.t 1234
jpc
5

NFS может быть полезным.

Сетевая файловая система (NFS) позволяет клиентскому узлу осуществлять прозрачный доступ к файлам по сети. Используя NFS, клиентский узел работает с файлами, расположенными на различных серверах и серверных архитектурах, а также в различных операционных системах. Вызовы доступа к файлам на клиенте (например, запросы на чтение) преобразуются в запросы протокола NFS и отправляются в серверную систему по сети.

Вам может потребоваться помощь от администратора Unix, чтобы настроить его в первый раз, но это очень полезно.

Hemant
источник
Для быстрых передач nix-to-nix ничто не близко к NFS. Хороший администратор может запустить обе системы и выполнять переводы менее чем за 5 минут, он почти прозрачен для остальной системы и хорошо известен и стабилен. +1 за что-то, что не требует выкидывать командную строку каждый раз для передачи чего-либо.
Эйвери Пейн
2

Для однократной передачи файлов я обычно использую SFTP или существующий общий ресурс samba.

Для синхронизации я предлагаю вам попробовать rsync или unison (для двусторонней синхронизации).

Edit: тогда scp будет лучше sftp, так как он будет работать на всех хостах с включенным SSH

Герт
источник
2

Для создания резервных копий я часто использую rsync. Если я хочу сделать резервную копию на удаленной машине, я добавлю строку в / etc / fstab, чтобы удаленная машина была смонтирована с помощью NFS или CFIS (Samba).

192.168.0.101:/ /mnt/backup nfs rsize=8192,wsize=8192,timeo=14,intr 0 0

Затем добавьте строку в мой crontab, используя rsync.

rsync -av /home/user/sourcedir/ /mnt/backup/destinationdir > /home/user/backup.log
jjclarkson
источник
1

Netcat прост, но не все версии надежно закрывают соединение.

Вот тема об использовании socat: надежная передача файлов через TCP

Подвести итог:

Предложено :

Сервер, отправляющий файл:

server$ socat -u FILE:test.dat TCP-LISTEN:9876,reuseaddr
client$ socat -u TCP:127.0.0.1:9876 OPEN:out.dat,creat

Сервер получает файл:

server$ socat -u TCP-LISTEN:9876,reuseaddr OPEN:out.txt,creat && cat out.txt
client$ socat -u FILE:test.txt TCP:127.0.0.1:9876

Предлагаемые улучшения :

  • OPEN:out.txt,creat,truncудалит все байты out.txtперед записью в него. Эта опция имитирует то, что вы ожидаете cp, и, вероятно, то, что вы хотите.
  • OPEN:out.txt,creat,exclоткажется писать, out.txtесли он уже существует. Используйте эту опцию для дополнительной безопасности.
  • OPEN:out.txt,creat,appendдобавит данные в out.txt.
Гжегож Вежовецкий
источник
1

Giver - это простое настольное приложение для обмена файлами. Другие люди, работающие с Giver в вашей сети, автоматически обнаруживаются, и вы можете отправлять им файлы, просто перетаскивая их на фотографию или значок, отображаемый в Giver.

В Ubuntu:

sudo apt-get install giver
Gasuma
источник
0

Также вы можете использовать программу Giver . С его помощью вы можете передавать файлы по локальной сети в 2 клика или путем «перетаскивания» файла получателю. Получатели (которые также должны запускаться giver) обнаруживаются через Zeroconf, поэтому вам не нужно знать даже их IP. Вот видео о том, как работает Giver .

Андрей Дзиахель
источник
2
Как кто-то, кто работал над Giver в прошлом, я могу сказать, что это аккуратное приложение, но оно совершенно не поддерживается и содержит множество ошибок, особенно когда речь идет о передаче больших файлов. Не ожидай многого от этого.
Сэнди
@ Сэнди, да, я знаю об ошибках. В моем случае файлы 1.4G были успешно переданы. В любом случае, использование Giver выглядит намного проще, чем NFS / rsync / nc / что угодно.
Андрей Дзиахель
0

Если у вас нет учетной записи (пароля) на принимающем хосте, вы можете использовать woos (веб-предложение в один поток):

woos file-or-directory ...

http://fex.belwue.de/fstools/woos.html

Framstag
источник