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

При работе с 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

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

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

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

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

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

Читать далее