1

Мне нужно перенести файлы с одного сервера CentOS на другой. Я буду передавать файлы по 5 МБ каждые 10 минут. Мне не нужно шифрование.

Какой простой способ быстрой передачи этих файлов? Есть ли что-то проще, чем FTP?

8 ответов8

5

Распределенная файловая система или используйте crontab для выполнения задания scp/rsync .

scp = безопасное удаленное копирование, вам потребуется настроить файл идентификации и ключ аутентификации для аутентификации ключа, т.е. без пароля

crontab работа:

crontab -e

вставьте это в файл (для):

*/10 * * * * scp me@remote.machine:/remote/path/file /save/to/path

Если все сложнее, чем FTP, то используйте флешку USB!

1

netcat проще, так как это просто необработанные байты (ala cat) по проводам. но вам также понадобится прослушивающий netcat с другой стороны ... "в нужное время" :)

receiver> nc -l -s 0.0.0.0 -p 12345

а затем вы отправляете файл через

sender> nc receiver 12345 < file

Это самый простой способ переноса файлов с одного компьютера на другой. Нет аутентификации, нет шифрования, ничего, кроме сырых байтов.

но я не буду рекомендовать это в любом случае для надежной передачи файлов по сети. используйте ssh/scp.

1

Я бы сказал, что rsync - это путь.

Гораздо проще написать сценарий для xfer, чем для ftp, и достаточно хорошо разбираться в том, как он работает (возобновление, сравнения и т.д.). Вы также можете настроить его на периодическое сканирование самого каталога и загрузку новых / измененных файлов, чтобы вы могли пропустить crontab.

Обычно rsync является скользким, поэтому, если вы хотите увидеть, что он делает, вам нужно

Довольно хороший обзор / учебник: http://everythinglinux.org/rsync/

(copy recursively, keep symlinks/users, verbose, checksum)
rsync --progress -avz  
       /copy/files/*.tar.gz 
       username@other-server:/destination/folder

Что касается распределенных файловых систем, это звучит сложно. Вы можете просто смонтировать один и тот же том NFS на обеих машинах? Если только один пишет, вам не о чем беспокоиться.

1

Вы хотите, чтобы это было автоматически?

sshfs - это хороший способ, если нет, просто установите sshfs и запустите

mkdir /mount/point
sshfs user@server:/remote/path /mount/point

и введите свой пароль в командной строке, тогда удаленный путь выглядит как локальный каталог на вашем компьютере. Конечно, вам понадобится ssh-сервер на удаленном конце. OpenSSH - хорошая альтернатива

0

Если передача выполняется только в одном направлении, вы можете развернуть простой HTTP-сервер, такой как mini-httpd , опубликовать файлы в каталоге, который предоставляет mini-httpd , и позволить получателю загрузить их с помощью wget . mini-httpd - это первое, что приходит на ум, когда я думаю о простом HTTP-сервере, но я уверен, что есть более простые (разве у вас нет технической возможности настроить веб-сервер с помощью bash? разве где-то не так, как в Perl, где реализован простой веб-сервер?)

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

0

wput - это ftp-клиент для командной строки, который упрощает загрузку файлов с помощью одной команды:

wput myfile.tar ftp://user:pass@example.com/mydir/

Конечно, вы можете сделать то же самое с другой стороны, используя wget/curl и веб-сервер.

0

Другой вариант - настроить сервер NFS на одном узле и подключить его на другом узле.

-1

Другой вариант - MidnightCommander (mc). Если вы выросли с DOS и NortonCommander.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .