Sendmail - принудительная обработка почтовой очереди

Sendmail logo

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

Есть несколько причин, когда сообщения могут помещаться в почтовую очередь. Например:

Subversion - обновление исходных кодов

Разработчики FreeBSD уже довольно давно работают над заменой системы управления версиями, и на данный момент, вместо CVS проект использует SVN. По факту, коммиты вносятся в SVN, а уже оттуда идет експорт в CVS. Так что рекомендованная система контроля версий - именно SVN. Ну что ж, начнем...

Subversion - свободная централизованная система управления версиями, которая обладает всеми основными функциями CVS, но лишена ее недостатков.

Поскольку SVN все еще не доступно в базовой системе (FreeBSD 9.1), установим subversion из системы портов:

Bind - ошибка запуска

Как говорится, ничего не предвещало беды... И тут один из серверов намертво повис (как оказалось в дальнейшем - засбоил контролер HDD). После ребута все успешно запустилось, кроме DNS-сервера. При попытке запуска, BIND ругался следующим образом:

# sh /etc/rc.d/named start
/etc/rc.d/named: ERROR: get_pidfile_from_conf: /etc/namedb/named.conf does not exist (named)

Перепроверил конфиги, стартовые скрипты... А оказывается ларчик просто открывался, достаточно восстановить символическу ссылку на каталог /etc/namedb:

Gmirror - программный сбой работы RAID

Иногда бывает такое, что возникают сбои в работе gmirror, и один из дисков зеркала помечен флагом BROKEN. Обычно такое бывает, когда gmirror обнаруживает на диске ошибки и исключает его из зеркала. Вот и у меня такое случилось на одном из серверов:

# gmirror list

Portsnap - обновление исходных текстов портов

Portsnap - рекомендуемый метод обновления исходных текстов дерева портов. Тем более, что с 28 февраля 2013 года поддержка cvs прекращена.

Для начала начала ознакомимся с тем, как работает portsnap. Стоит отметить, что portsnap, не работает напрямую с основным деревом портов, которое расположено в /usr/ports, а использует рабочий каталог (по-умолчанию /var/db/portsnap), куда скачивается сжатая копия (snapshot) дерева портов, а оттуда уже обновляется основное дерево портов. Конфигурационный файл - /etc/portsnap.conf, который можно не трогать, однако если надумаете внести какие-то изменения, то все довольно хорошо прокомментировано.

Утилита portsnap имеет в своем распоряжении несколько команд:

Bgpq - автоматизация построения prefix-list

Являясь сетевым администратором, повседневно работаю с BGP. Стоит отметить, что BGP-соединения всегда можно разделить на соединения с апстримами, с клиентами и пиринговые (т.е. паритетные). При настройке паритетных соединений и соединений с клиентами, желательно накладывать prefix-list на принимаемые анонсы. Для автоматизации постройки prefix-list согласно as-set, уже довольно давно пользуюсь утилитой bgpq. Утилита автоматически строит префикс-листы, беря за исходные данные номер автономной системы или as-set. Утилита становится незаменимой довольно быстро.

Для начала, выполним установку утилиты из системы портов:

AWG (American Wire Gauge) - соответствие стандарта AWG сечению провода

Подбирая кабель необходимого сечения, обратил внимание, что часть кабелей имеет маркировку AWG без указания сечения кабеля. Поскольку при выборе кабеля отталкиваемся от планируемой мощности нагрузки, подбирая необходимое сечение кабеля, желательно иметь под рукой таблицу перевода и понимать, что  откуда и почему.

Скрипт мониторинга и перезапуска процесса

Случается, что какой-то процесс время от времени вылетает, что не есть хорошо. И выяснить причину падений не всегда удается. Как вариант - установка мониторинговой системы (Monit, Zabbix, Nagios, etc). Однако не всегда в этом есть смысл, особенно когда это сервер небольшого офиса. В этом случае работу сервиса проще проверять простеньким скриптом, который проверяет, запущен ли процесс, а если нет - дает команду на запуск сервиса.

Perl - ошибка "Use of qw(...) as parentheses is deprecated at..."

Perl логотип

После очередного обновления софта, обнаружил, что некоторые из скриптов, написанных на Perl, сыпят  в /var/log/httpd-error.log сообщения о ошибках. Пример сообщений:

MPD - использование в качестве pptp-клиента

Понадобилось однажды ресурсы сети А транслировать как локальные ресурсы сети В. Поскольку прямого взаимодействия этих сетей нету, обьединение сетей выполним посредством построения VPN-тунеля, благо что в роли маршрутизаторов обеих сетей выступают сервера под управлением FreeBSD. Поскольку в сети А уже функционировал полноценный VPN-сервер на базе MPD, то не будем изобретать велосипед, а просто настроим подключение с маршрутизатора сети В в качестве VPN-клиента к VPN-серверу, находящегося в сети А.

Логика взаимодействия сетей А и В до построения VPN-тунеля

RSS-материал

Вставай, Україно!

Литература