Используя команду часов (или другой метод) для остановки сервиса, когда файл изменяется

Мне нужен сервис, остановленный, когда изменение происходит в файле failed.log. Я смотрел на команду часов, чтобы сделать это: watch -d -g -t 'ls -l /home/username/*failed.log' Эта команда проверит если вывод от ls изменился. Если это сделало, я хочу, чтобы это остановило сервис CUPS.

Я изучал inotify-tools, но это - то, где это стало немного слишком сложным для меня. Какие-либо предложения?

0
задан 6 September 2018 в 01:21

2 ответа

Как насчет того, чтобы соединить обе команды &&? Это удостоверится, что из первой команды успешно выходят с кодом 0 который равняется true в bash прежде чем вторая часть выполняется. Если это верно, вторая часть выполняется, и сервис чашек будет остановлен.

watch -d -g -t ls -l /home/username/*failed.log && service cups stop

2
ответ дан 28 October 2019 в 00:39

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

У меня есть сервер OpenVPN на работе. Когда я должен перезагрузить для применения обновлений, но у меня есть текущие сеансы пользователя, я настроил некоторое время цикл для проверки на определенное grep шаблон, ("vpnip, имя пользователя, wanip, устанавливает метку времени"). Если шаблон найден, я ожидаю некоторое время; еще, если шаблон не найден (ненулевой код выхода), я перезагружаю.

Это очень характерно для моего сервера, но можно скорректировать grep оператор для удовлетворения потребностям.

while [ 1 ] ; do 
    if egrep '10.8.0.[0-9]+,[a-zA-Z\-]+,[0-9\.]{7,15}:[0-9]+,(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) +[0-9]{1,2} [0-9:]{8} [0-9]{4}' /ramdisk/openvpn-status.log ; then 
        echo someone still connected ;
        sleep 30s ; 
    else 
        echo reboot now ; 
    fi ; 
done

Пример выше имеет echo reboot now потому что я не хотел перезагружать сейчас, но Вы получаете идею.

SSH session, wait to reboot

1
ответ дан 28 October 2019 в 00:39

Другие вопросы по тегам:

Похожие вопросы: