LINUX.ORG.RU

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


0

0

Есть 4 рабочие станции и центральный сервер.

На каждой рабочей станции раз в 3 секунды формируется текстовый файл размером 1 МБ.

Необходимо с минимальными затратами, сразу после формирования этот файл по сети передать на сервер. Все компьютеры соединены сетью со скоростью 1 Gbit/s.

Какой способ передачи лучше избрать из соображений стабильности и экономии ресурсов всех 5-х машин?

За ответы заранее спасибо.


Имеется в виду транспорт или софтина которая умеет раз в 3 сек слать файл?

hint: если что, то софтина - это cron :)

cathode
()


да мало ли, rsync, ftp/sftp, rcp/scp и иже с ними.в конец концов нарисовать собственную системку с минимальным оверхедом за пару часов.

// wbr

klalafuda ★☆☆
()

В конце-концов, заведи на сервере Базу Данных и укладывай текстовую информацию в неё... И обрабатывать будешь легче и надёжнее (не будешь периодически "ловить" сервером "пустышки").

Neksys ★★★
()

subversion не подойдет?

andreyu ★★★★★
()
Ответ на: комментарий от cathode

++
тут вообще всё что хочеш можно пользовать.
bash, cron, ftp/всёподобное, 15мин работы.

anonymous
()
Ответ на: комментарий от Neksys

> В конце-концов, заведи на сервере Базу Данных и укладывай текстовую информацию в неё...

Mad overengineering skills detected.

anonymous
()
Ответ на: комментарий от anonymous

> Mad overengineering skills detected.

:-)

А ты _сделай_ выкладывание файлика раз в 3 сек и считывание содержимого этого файлика каждые 3 сек. Погоняй с часик, проконтролируй побайтно, что было считано, на самом деле. Может, и поймёшь, "в чём прикол" и зачем нужны механизмы Баз Данных...

Neksys ★★★
()
Ответ на: комментарий от Red_Lion

> echo "${data}" | netcat ${ip} ${port}

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

> Дальшее обьяснять?

Об этом лучше спросить автора топика, можно ли в его серверный процесс встроить нормальную/полную обработку этого соединения и "бесфайловую" синхронную передачу данных. Мне идея понятна. Главное же не дать возможности основному серверному процессу считать недоформированный файл, в середине или начале процесса его формирования, не так ли?

P.S. Тем не менее, IMHO работа с БД выглядит менее затратной, т.к. не нужно будет писать свой сервер, свои реализации её механизмов по обеспечению целостности данных.

:-)

Neksys ★★★
()
Ответ на: комментарий от Neksys

Целостность данных можно по md4 проверить (md4 довольна быстра и не накладна)

Просто у меня была ситцуация когда надобыло полный дамп харда передать с проверкой на целостность передачи. Было поднята pxe система которая читала определнное количество данных (у меня было 32мб), делала контрольную сумму, отправляла ее на хранилище, потом отправляла данные. Скрипт не очень большим оказался и по сути свелся к -e опции на сервере и последовательному read данных.

Просто при небольшом количестве клиентов и необходимости что-то сделать быстро я считаю netcat лучшем решением

Red_Lion
()
Ответ на: комментарий от Red_Lion

Проблема не в передаче файла, тот же scp прекрасно справляется с задачей. Проблема с квантованием процесса формирования файла: заголовок, таймаут, порция данных, таймаут, порция данных, таймаут, ... , закрытие файла. Основной процесс обработки может асинхронно начать считывать файл в любой из этих периодов и закончить чтение, дойдя до конца недоформированного файла, по существу, неполных данных. Это не проблема сети, это проблема синхронизации процессов.

:-)

Neksys ★★★
()
Ответ на: комментарий от Neksys

>> Проблема не в передаче файла, тот же scp прекрасно справляется с задачей. Проблема с квантованием процесса формирования файла: заголовок, таймаут, порция данных, таймаут, порция данных, таймаут, ... , закрытие файла. Основной процесс обработки может асинхронно начать считывать файл в любой из этих периодов и закончить чтение, дойдя до конца недоформированного файла, по существу, неполных данных. Это не проблема сети, это проблема синхронизации процессов.

+1

И кстати netcat (в режиме сервера) держит только одно соединение одновременно. И если нужно отправлять файлы на сервер с нескольких машин, то решение с nc не подходит однозначно.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.