Terminal: Gibt es eine Möglichkeit, beim Verfolgen eines Fehlerprotokolls über Aktivitäten benachrichtigt zu werden?

Ich ssh oft in eine Maschine und tail -f es ist das PHP-Fehlerprotokoll. Meine ideale Situation wäre, dieses Terminalfenster im Hintergrund geöffnet zu lassen, aber wenn es Aktivitäten vom tail-Befehl gibt, das Terminalfenster aktivieren und nach vorne verschieben zu lassen oder mich auf irgendeine Weise zu benachrichtigen, dass ein Fehler geschrieben wurde. Auf diese Weise müsste ich nicht immer Platz auf meinem Desktop reservieren.

Macht das Sinn?

Antworten (3)

Das Dock-Symbol des Terminals beginnt zu hüpfen, wenn eine nicht aktive Registerkarte \a ausgibt:

tail -f /var/log/system.log | sed $'s/$/\a/'

Oder laufen sudo gem install terminal-notifierund so etwas tun:

tail -f /var/log/system.log | while IFS= read -r l; do echo "$l"; terminal-notifier -message "$l" > /dev/null; done

Aus irgendeinem Grund funktioniert dies nicht mit dem Apache-Protokolltail -f /var/log/apache2/error_log | while IFS= read -r l; do echo "$l"; terminal-notifier -message "$l" > /dev/null; done

Ich dachte daran, ein AppleScript oder Hazel oder Keyboard Maestro vorzuschlagen, aber dann erinnerte ich mich an iTerm.

iTerm sendet über Growl eine Benachrichtigung, wenn es Aktivitäten gibt. Aus der Online-Hilfe:

Growl-Unterstützung

Wenn Sie Growl aktivieren (Einstellungen > Profile > Terminal > Growl-Benachrichtigungen aktivieren) und Growl installiert haben, erhalten Sie Nachrichten, wenn ein Terminal piept, nach einer Zeit der Stille eine Ausgabe ausgibt oder beendet wird.

Ich habe die gleiche Situation: ein Server mit Protokolldateien und mein lokaler Computer, auf dem ich über Fehler und Warnungen benachrichtigt werden möchte.

Was ich tue, ist, die Protokolldateien regelmäßig auf meinen lokalen Rechner zu holen und sie mit einem Tool namens Logistic (www.logtastic.net) zu überwachen.

Der Befehl zum Abrufen meiner Protokolldateien vom Server lautet:

while true ; do FONTDEFDEFAULT='\033[0m' ; FONTDEF='\033[1;35m'; echo -e "${FONTDEF}Copy ...${FONTDEFDEFAULT}" ; scp [USER]@[YOUR-SERVER]:/path/to/log/files/* /var/log/ ; sleep 3 ; done

Stellen Sie sicher, dass Sie SSH-Schlüssel generiert und freigegeben haben, um zu verhindern, dass Sie das Passwort jedes Mal eingeben.