Я пытаюсь установить квоты на печать для принтеров здесь, в офисе. Тем не менее, он появляется, когда квота достигнута, печать просто не работает, и пользователь не имеет ни малейшего представления, что происходит.
Квота страницы была настроена путем изменения директивы PageLimit в /etc/cups/printers.conf
Кажется, я получаю сообщение
E [04/Mar/2013:15:34:28 -0700] Returning IPP client-error-not-possible for Create-Job
(ipp://localhost:631/printers/Hewlett-Packard-HP-LaserJet-4100-MFP) from 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 для мониторинга изменений в файле. система, и объедините это с небольшим сценарием, который у вас уже есть.
Это выглядит примерно следующим образом. Сначала сохраните сценарий, который вы хотите выполнить, в виде файла, например, как
cups_monitor.sh
в/usr/local/bin
(не забудьте сделать его исполняемым).#!/bin/sh VAR=`tail -n 1 /var/log/cups/error_log | grep 'client-error-not-possible for Create-Job'` if [[ -n "$VAR" ]]; then echo "$VAR" | DISPLAY=:0 notify-send -t 30000 -i fi
Вы можете проверить это. Мои сценарии никогда не бывают правильными с первой попытки :). Также обратите внимание, что возможно, что этот сценарий не фиксирует ваше сообщение об ошибке, если за ним следует другое сообщение: я смотрю только на последнюю строку файла журнала (
-n 1
); это должно быть легко изменить.Затем отредактируйте свой incrontab
incrontab -e
, добавив строку
/var/log/cups/error_log IN_CLOSE_WRITE /usr/local/bin/cups_monitor.sh
1119 Имейте в виду, что я не проверял это. Вы можете увидеть, был ли файл incrontab успешно изменен и вызывает ли он ваш скрипт или нет, заглянув в системный журнал (
IN_CLOSE_WRITE
называется «символом события» и указывает, что вы хотите позвонить своему скрипт, когда/var/log/cups/error_log
был закрыт после того, как он был открыт для записи; Вы можете найти другие события на странице справочника incrontab.tail /var/log/syslog
).BLOCKQUOTE>