Ubuntu 16.04 - Используя часы управляют для проверки файла на вывод и останавливающийся сервис

Действительно ли возможно использовать команду часов, чтобы видеть, существует ли файл, и если это действительно затем останавливает сервис? Или возможно, как обходное решение, проверяют содержание файла и затем останавливают сервис?

Я смотрел на команду часов, чтобы сделать это:

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

Проблема для меня состоит в том, что я не понимаю эту команду полностью. Я думаю, что это проверяет вывод "ls" здесь, но на что это проверяет "ls"? Мне нужна команда для проверки "twitter-failed.log" на любой вид содержания. Файл является пробелом, когда нет никаких ошибок, но генерирует целый набор текста, когда существует ошибка. Таким образом, команда часов только должна проверить файл на любой вид вывода, затем остановить сервис.

0
задан 12 September 2018 в 01:42

1 ответ

Можно использовать inotifywait:

Поместите следующее в сценарий удара и сделайте его исполняемым файлом.

#!/bin/bash

set -e # make script exit on error

FILE_TO_WATCH="/home/username/twitter-failed.log"

# Truncate / Create empty file
> "$FILE_TO_WATCH"

# Wait for File was modified
inotifywait -e modify "$FILE_TO_WATCH"

# Do something after modified
service cups stop
send_yourself_a_notification

С другой стороны, Вы могли также использовать некоторый цикл как это, но я думаю, что лучше использовать специализированный инструмент как inotifywait сделать это:

until [ -s "$FILE_TO_WATCH" ]; do sleep 2; done && service cups stop
1
ответ дан 27 October 2019 в 23:52

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

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