Управление серверами 2.0

Ранее я писал о том, что создал скрипт для управления серверами Linux сейчас понимаю, что в процессе работы его доработал. В основном главное изменение коснулось ориентирование выбора массива на DNC имена так как в bash нету двумерных массивов.

Читать далее

Реклама

Одно тестовое задание

Периодически мониторю hh в поисках интересной работы и вдруг в 20-х числах декабря наталкиваюсь на вакансию у ultimate-guitar на серверного администратора. Требования и условия показались интересными и я попросил тестовое задание, чисто посмотреть смогу ли.

Задание прислали через пару дней, но было уже поздно его выполнять — я собирался в отпуск в Финляндию, а потом и праздновать новый год, по этому в итоге добрался только сейчас. И так как отсылать что-то сейчас уже чисто не вежливо, то выложу одно и заданий сюда.

    Необходимо перенести файлы, имеющие расширения html и htm, из каталога data в каталог tabs.
Каталоги исходный(data) и новый(tabs) находятся на одном уровне файловой системы. Например, /var/data и /var/tabs.
Данные в каталоге data имеют следующую структуру:
data/<letter|digit>/ver.htm(l)?
или
data/<letter|digit>/.htm(l)?
регулярное выражение:
data\/[\w\d]\/[^]+[^]+(ver\d+)?\.htm(l)?
Например:
data/a/abbadancing_queen-ver1.htm
data/0/009_sound_systemspace_and_time.html
Перенести нужно с изменением структуры каталогов, имя артиста должно стать
подкаталогом.
tabs/<letter|digit>//ver.htm(l)?
Например, файлы из предыдущего примера должны быть перенесены как:
tabs/a/abba/dancing_queen-ver1.htm
tabs/0/009_sound_system/space_and_time.html

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

Решение далеко от идеала, но работает)) Читать далее

Починка логирования в /var/log/messages

Случайно при просмотра лога /var/log/messages изменил его и после этого логирование перестало работать.

Так как сервер боевой, то нужно было восстановить процесс без перезагрузки машины, с чем в итоге удачно справился (перерыв тонну сайтов), командой:

pkill -HUP rsyslog

Nagios 4 + Redhat 6

Решил для разнообразия заняться nagios, хотя по работе он не используется.

У Nagios не плохая инфа о том как ставить их продукт, но все равно часть о том, как создавать дополнительные плагины на bash вычитывал за пределами официального man.

Пара ссылок.
Как поставить на centos, хотя не многим отличается от официальной документации.

Любопытно, что советы того, как писать плагины почти друг от друга не отличаются, например раз, два или три.

Сейчас, увы дополнительные плагины работают только на локальном компе, видимо с nrpe у меня не очень получается разобраться.

Рабочим локальным вариантом оказался, пока такой:
В /usr/local/nagios/libexec/ создаем скрипт check_rvec, с выводом exit 0/1/2/3.
В командах (/usr/local/nagios/etc/commands.cfg) прописываем новую:

define command{
        command_name    check_rvec
        command_line    $USER1$/check_rvec -H $HOSTADDRESS$
        }

Положенный по всем инструкциям

define command{
        command_name    check_rvec
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_rvec
        }

Работать отказывается. Не может никуда достучаться.

Управление серверами Linux

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

В итоге я пришел к этому — представляю типовой скрипт удаленного администрирования. Использование скрипта предполагает естественно предварительные манипуляции — авторизация по ключу (много советов бродит по интернету не буду на этом сейчас останавливаться), установка pssh для параллельных запросов ssh.

Читать далее