Мониторинг статуса изменений в репозитории git

Я использую Monit для мониторинга сервера Ubuntu и хочу проверить изменения в репозитории git.

Я читал (здесь), что "git ls-files" будет лучшим способом сделать это, но не уверен, как для запуска команды exec в качестве теста в monit. Их документы показывают примеры запуска команд exec после прохождения теста, но не показывают, как тестировать exec.

Как лучше всего это сделать?

==========

PS - я нашел решение, основанное на ответе @TheCodeKiller ниже. Вот окончательный код, который теперь отлично работает. Ответ был на самом деле в документах, но я не признал его своим решением. Это здесь.

Внутри конфигурации monit (/etc/monit/monitrc):

check program changed_files with path "/path/to/git/directory/monit_alert_changed_files.sh"
    if status != 0 for 3 cycles then alert

Затем внутри этого файла:

#!/bin/bash

# Script to check if there are changes in the current git directory

if [[ `git --git-dir "/path/to/git/directory/.git" --work-tree "/path/to/git/directory/" ls-files -m -o --exclude-standard` ]]; then
  # Changes
  exit 1
else
  # No changes
  exit 0
fi

person Chuck Norton    schedule 08.05.2018    source источник


Ответы (1)


Вы можете запустить программу или пользовательский скрипт с помощью check program:

check program my_check with path "/path/to/my/script.sh arg1 arg2 arg3"
    if status != 0 for 3 cycles then alert

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

person TheCodeKiller    schedule 23.05.2018
comment
Спасибо @TheCodeKiller! ! Это идеальное решение, поскольку оно позволило бы мне протестировать все виды вещей. Я пропустил это в документах. Я проверю это как можно скорее. - person Chuck Norton; 24.05.2018