Вот более общий вопрос использования.
Как я могу отслеживать файл журнала на предмет определенных изменений и использовать оповещение «уведомить-отправить» в Ubuntu, чтобы предупредить, когда произойдут указанные изменения?
ОРИГИНАЛЬНЫЙ ВОПРОС:
Я пытаюсь установить квоты на печать для принтеров здесь, в офисе. Тем не менее, он появляется, когда квота достигнута, печать просто молча терпит неудачу, и пользователь не имеет ни малейшего представления, что происходит.
Квота страницы устанавливается путем изменения директивы PageLimit в /etc/cups/printers.conf
Похоже, я получаю сообщение
E [04 /Mar /2013:15:34:28 -0700] Возврат IPP-ошибки клиента невозможен для Create-Job (ipp://localhost:631 /printers /Hewlett-Packard-HP-LaserJet-4100- МФУ) от localhost
в моем журнале в /var /log /cups /error_log.
Я пытался взломать что-то вместе с помощью команды, как
`tail -f /var/log/cups/error_log | grep 'client-error-not-possible for Create-Job' DISPLAY=:0 notify-send -t 30000 -i 'notification-message-email' 'Printing Quota reached for this Printer'`
Но, похоже, это не сработает, так как оно отображает сообщение только один раз в первом сообщении об ошибке.
Есть мысли или решения? Похоже, что для этого должно быть готовое решение.
РЕШЕНИЕ
incrontab работал отлично.
sudo apt-get install incrontab
Добавить пользователя root в /etc/incron.allow
sudo nano /etc/incron.allow
Создать скрипт monitorCUPSlog.sh
#!/bin/bash
tail -n 1 /var/log/cups/error_log | grep 'client-error-not-possible' | DISPLAY=:0 notify-send -t 30000 -i 'notification-message-email' 'Daily Print Quota exceeded for this printer'
И, наконец, добавьте событие в таблицу incrontab.
sudo incrontab -e
/var/log/cups/error_log IN_MODIFY /usr/local/bin/monitorCUPSlog.sh
Кажется, работает, ура.