Antworten:
Eine Idee wäre, die Ausgabe von tailthrough zu sedleiten und die Newline durch bell / newline zu ersetzen.
Aber es gibt wahrscheinlich eine einfachere Lösung, wenn Sie tailinnerhalb eines X-Fensters verwenden . Dort können Sie eine Aktion ausführen, wenn sich der Inhalt des Fensters ändert (Flackern, Klingeln, was auch immer).
sedIdee ist genial, aber ich kenne nicht genug "sed", um sie zum Laufen zu bringen. Es sieht so aus, als ob ich keine Zeilenumbrüche auf die übliche Weise erfassen kann (wie ich es gewohnt bin). Ich denke, ich muss sed Bescheid geben interpretiere den eingehenden Stream nicht zeilenweise.
sed -e $'s/$/\a/'ein $'\a'(Bell-Zeichen in ksh / bash / zsh-Syntax) hinzu.
sedRegexpt ist ein bisschen seltsam für meine naiven Augen.
$'...'Syntax nicht universell ist. Beispielsweise unterstützt [t] csh dies nicht.
Wenn Sie GNU verwenden screen, können Sie es so einstellen, dass es das Fenster mit dem Schwanz "beobachtet" und Sie in Ihrer Statusleiste oder durch die definierte Glocke Ihres TermCaps benachrichtigt, dass es in diesem Fenster neue Ausgaben gibt.
http://www.gnu.org/software/screen/manual/html%5Fnode/Monitor.html#Monitor
edit: musste dies nur hinzufügen, da du mac os x erwähnt hast
Nur zum Spaß, wenn Sie nach etwas Bestimmtem suchen, können Sie den sayBefehl von Mac OS X verwenden , um die Datei zu lesen, die Sie gerade ansehen. Holen Sie sich einfach den logtailBefehl von:
http://www.hmug.org/pub/MacOS_X/BSD/Administration/Log/logcheck/
Und benutze es in einem Skript wie:
#!/bin/bash
file=$1
offset=$(basename "$1")
# while true... let this thing run until it's killed...
while true; do
output=$(/usr/local/bin/logtail $file .${offset}.offset)
if [ ! -z "$output" ]; then
# print the output and say ding
echo "$output" && say ding
# to have the file read aloud to you, uncomment the following:
say "$output"
fi
# recheck every 5 seconds
sleep 5
done
screenShows und Alarm (ich schätze, ich kann es auch klingeln lassen) NUR EINMAL. Nicht für jedes neue Ereignis, das passiert (nicht für jede neue Linie, die verfügbar ist)
beepBefehl verwenden say.
execBefehl screen verwenden, um dies zu tun. Das Beispiel auf der Hilfeseite !:sed -n s/.*Error.*/\007/psendet jedes Mal eine Glocke, wenn "Fehler" in diesem Fenster angezeigt wird.
Sie könnten Multitail verwenden . Es ist ein erweiterter Tail, der die Befehlsausführung bei Übereinstimmung mit regulären Ausdrücken unterstützt.
Beispiel: Der folgende Befehl gibt einen Ton aus und öffnet jedes Mal, wenn ein Martian- Quellpaket protokolliert wird, ein xmessage-Fenster .
multitail -ex "martian source" "play beep.wav; xmessage " -i /var/log/messages
Nur für das Protokoll, wie @Nils vorgeschlagen Ich verwende sedein hinzufügen bellzu jeder Zeile.
Die sedvon @Gilles bereitgestellte Zeile
sed -e $'s/$/\a/'
Funktioniert auf meinem Mac (Ich habe in meinen Terminal \ Einstellungen \ Erweitert "Akustische Glocke" und "Visuelle Glocke" aktiviert).
$'...'Escape-Sequenzen eine reine Bash-Sache sind.
Für alle anderen, die diese Seite finden, verwende ich tcsh und dies scheint zu funktionieren:
tail -f changingfile | sed -e 's/.*/& \a/'
Fragen Sie mich nicht, was die sed-Syntax bedeutet ...
Sie können versuchen konsole, auf einer Registerkarte einen Alarm für neue Aktivitäten (oder Stille) zu aktivieren.
konsolewürde screeneinmal Alarm geben, während ich für jede neue Zeile einen Alarm erhalten muss.