visor
Описание
Утилита для запуска по расписнию других приложений или скриптов
Языки
- Vue79,2%
- Go18,4%
- JavaScript0,9%
- Shell0,7%
- CSS0,6%
- HTML0,2%
И так, что умеет:
- Циклически запускать какое-либо приложение
- Запускать по некому расписанию
- Может потушить приложение, если оно не уложилось в определенное время
- Может для каждого приложения создавать свои логи
- Имеет свой web интерфейс
Вы скажите, что это можно все сделать и с помощью системных утилит, и Вы будете правы. Я его создавал для себя, чтобы не лазить во все эти системные утилиты. Разбираться с ними. Вот и родился этот велосипед.
Параметры для запуска:
- info - подробная информация о заданиях визора
- status - текущее состояние задания
- restart - перезапустить задание
- stop - остановить задание
- del - удаляет задание из визора
- reload - перезагрузить конфиг
- to EXIT - завершить работу визора
CLI
-p порт для cli (по умолчанию 20000)
-i IP web (по умолчанию 127.0.0.1)
-l основной лог программы
-d демонизировать программу
Первые шаги.
Поместим визор в какой-нибудь каталог на пример:
Запустим программу. В Вашем каталоге должны появиться 2 рабочие директории - это log и script.
Создавать задания можно как через файл конфигураций, так и через web интерфейс.
Описание конфига задания:
config.yml
"123": Название задания
title: "" Описание
env: []
user: "" От какого пользователя запустить
cmd: ls -a Комманда
logdir: log/ Каталог куда будут складываться логи
limitlog: ""
timer: Расписание для задания, таймер
- month: ""
days: "14"
hours: "10"
minutes: "43"
sleepstart: 0 Через какое время в секундах запуститься команда
workdir: script/ Рабочая директория
Описание расписания:
- month, интервал действия таймера, или конкретный месяц (пример:
,1-10)3 - day, то же самое что и month, плюс можно чтобы он отработал в конце месяца (
), через некое количество дней(end- каждые 4 дня)+4 - hours, то же самое что и day, но без end
- minutes, нет интервалов работы, только через какое-то время(
- каждые 4 минуты), или в определенную минуту+4
Для одной задачи, можно составить множество таймеров.
Запускаем:
Пример CLI
Предположим мы собрали nginx и хотим его запустить: