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

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

Читать далее

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

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

Для while, for и if

Читать далее

Управление серверами (python 2.7)

Так как еще в прошлый раз я наткнулся на ограничения при работе с массивами в bash, то решил переписать скрипт управления серверами для работы на python, за одно дополнил его проверками и более удобным выбором количества серверов (не по одному, а через запятую). Получилось пока сыровато, но вполне функционально.

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

Больше всего мне пока не нравится, что пока не реализовал защиты от неправильного ввода и когда список выводится для выбора серверов делает это со всеми скобками.

Читать далее

Управление серверами 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

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

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