Ich würde die Verwendung von Incrontab zur Überwachung von Änderungen am Dateisystem prüfen und dies mit dem kleinen Skript kombinieren, das Sie bereits haben.
Das sieht ungefähr so aus.
Zuerst speichern Sie das Skript, das Sie als eine Datei ausgeführt werden soll, zum Beispiel wie cups_monitor.sh
in /usr/local/bin
(vergessen Sie nicht, es ausführbar zu machen).
#!/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
Vielleicht möchten Sie das überprüfen. Meine Skripte sind nie gleich richtig :). Beachten Sie außerdem, dass dieses Skript möglicherweise Ihre Fehlermeldung nicht erfasst, wenn eine andere Meldung folgt: Ich schaue nur die letzte Zeile der Protokolldatei ( -n 1
) an; Dies sollte leicht zu ändern sein.
Bearbeiten Sie dann Ihre Incrontab
incrontab -e
indem Sie die Zeile hinzufügen
/var/log/cups/error_log IN_CLOSE_WRITE /usr/local/bin/cups_monitor.sh
Das IN_CLOSE_WRITE
wird als "Ereignissymbol" bezeichnet und zeigt an, dass Sie Ihr Skript aufrufen möchten, wenn /var/log/cups/error_log
es geschlossen wurde, nachdem es zum Schreiben geöffnet wurde. Weitere Ereignisse finden Sie in der Manpage von incrontab.
Denken Sie daran, dass ich das nicht getestet habe. Ob die Incrontab-Datei erfolgreich geändert wurde und ob sie Ihr Skript aufruft oder nicht, sehen Sie in syslog ( tail /var/log/syslog
).
(Meine erste Antwort auf Stack Exchange! Yippee!)