Создаем демонов

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

Читать далее

Реклама

Циклы bash в одну строку

Периодически необходимо, чтобы в jenkins была вызвана башевская команда одной строкой — в основном для проверки условий и выполнения какого-то действия, и чтобы не записывать .sh на три строки я вызываю это из консоли.

Для while, for и if

Читать далее

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

Периодически мониторю 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

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

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

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

Читать далее