Привет. Мне понадобилось сделать небольшой сервер на перле, чтобы автоматически добавлять на вторичные ДНС-сервера новые зоны.
Вот тут код клиента и сервера: http://www.litecrm.ru/DNSreplicator.tar.gz Код достаточно простой и разобраться в нем очень лекго. Мне кажется это близко подходит к твоей задаче. И можно взять его за основу: DNSreplicator_server запускается на первичном ДНС и создает небольшой сервер, принимающий коннекты по TCP. Каждому подключившемуся клиенту он выдает время последнего обновления зон в ДНС (проверка каждые 10 сек.). Если время клиента совпадает со временем сервера, то клиент отключается, иначе запрашивает список доменов. Далее клиент проверяет каких доменов у него еще нет, добавляет их в named.conf как секондари зоны с ссылкой на IP сервер, как на мастер зону, и перезапускает ДНС-сервер. Для исключения возможных ошибок, на сервере можно задать список исключения. Клиент запускается по крону. Все хочу найти время, доделать его и засветить на хабре, но нет ни времени, ни кармы :) Там можно добавить проверку ошибки перезапуска вторичного ДНС-сервера и сделать откат к последней успешной конфигурации, но даже без нее за год работы ошибок небыло :) В клиенте IO::Socket. В сервере использовал POE::Component::Server::TCP, так как это быстрее и проще :) К тому же не надо ничего ставить с CPAN - библиотека есть в репозитории Debian (libpoe-perl). Если есть вопросы - пиши :) Best regards, Andrey Fedorov 25.08.2011, в 12:11, Тимофей Марков написал(а): > Благодарю всех ответивших. > Немного более точно обрисую ситуацию (заодно и информацию об информации дам). > На каждом сервере крутится перловая программа которая определяет скорость до > нескольких хостов. Вот именно эту информацию и нужно передавать, плюс еще > некоторые управляющие команды. те варианты с scp не подходят. Поднимать ради > этого апач тоже не правильно ибо это лишняя дыра в безопасности плюс лишняя > нагрузка на сервер (все сервера VPS) Вариант с RabbitMQ кажется тоже слишком > глобальным, хотелось бы справиться средствами perl не запуская лишних > процессов. > Такой вопрос, а почему не использовать IO::Socket и IO::Select как я > понимаю(хотя конечно могу не правильно понимать) этого функционала достаточно > для создания соединений. Или есть какие подводные камни? > И что на счет шифрования(в эти дебри сам еще не успел залезть), в принципе > обмен будет проходить по защищенным каналам, но береженого Бог бережет/ Может > есть какие средства для установления защищенных каналов, или придется доп > модули использовать? > > Остальные модули буду сейчас рассматривать. > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
