Rundeck - Как Отправить Уведомление Только В Случае, Если Вывод Задания Не Пуст

  • Автор темы Saosha
  • Обновлено
  • 18, Oct 2024
  • #1

Мы используем rundeck для сканирования файлов журналов службы и принимаем меры в зависимости от того, что там обнаружено. По сути, для каждого найденного элемента, для которого не существует записей, инициализируется git-репозиторий и вызывается несколько конечных точек отдыха, но это не главное.

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

Есть ли способ в Rundeck вызвать уведомление с этим требованием? Или способ написать сценарий без написания плагина с нуля?

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

#уведомления #rundeck

Saosha


Рег
28 Mar, 2020

Тем
75

Постов
201

Баллов
576
  • 25, Oct 2024
  • #2

Я мог подумать так:

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

Отключение уведомлений об успехе в rundeck и обработка части уведомления об успехе в самом скрипте. Таким образом, ваша обязанность скрипта - предупредить, что он сделал что-то в нормальном состоянии, и обязанность Rundeck по-прежнему предупреждать вас о сбое скрипта.

 

EepsS


Рег
05 Dec, 2006

Тем
68

Постов
207

Баллов
557
  • 25, Oct 2024
  • #3

Мне удалось обойти эту проблему несколько хитрым способом, изменив команду на:

grep

Это передает вывод через

grep
and fails if there is any output at all, but
/bin/bash -c "your-command-here | { ! grep '^'; }"
по-прежнему передает его, так что вы все равно сможете увидеть выходные данные в Rundeck в случае сбоя.

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

 

Mw1951


Рег
13 Dec, 2008

Тем
82

Постов
196

Баллов
616
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно