![]() |
|
|
Google unix.com
|
|||||||
| Foren | Registrieren | Forum-Regeln | Links | Alben | FAQ | Benutzerliste | Kalender | Suche | Die heutige Beiträge | Alle Foren als gelesen markieren |
| Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier. |
Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
|
||||
| Faden | Thread Starter | Forum | Antworten | Last Post |
| tail-f | wannalearn | Shell Programmierung und Scripting | 4 | 04-10-2007 06:22 PM |
| Schwanz? | qfwfq | Shell Programmierung und Scripting | 7 | 06-19-2006 02:15 AM |
| tail-Befehl .. | amon | Shell Programmierung und Scripting | 2 | 06-02-2006 05:36 AM |
| Hilfe zur Scripting mit Schwanz | JISC | Shell Programmierung und Scripting | 4 | 05-19-2006 04:15 AM |
| wie sed mit Schwanz | redlotus72 | UNIX for Dummies Questions & Answers | 1 | 08-30-2005 06:27 AM |
![]() |
|
|
LinkBack | Thread Tools | Suche diesen Thread | Rate Thread | Anzeige-Modi |
|
|
|
||||
|
Arbeiten in HP-UX 10.20. Ich auch schreiben wollen, ein Bourne-Shell-Skript, um das folgende Problem, aber für jetzt bin ich nur liebäugelt mit ihr auf der Kommandozeile.
Hier ist, was ich im Grunde zu tun: tail-f log_X | grep n> log_Y Ich mache ein tail-f auf log_X. Wenn es sieht, "n", ich möchte für sie grep, dann legen Sie sie in log_Y. Es ist nicht damit zu log_Y. Ich habe manuell hinzufügen "n" zu log_X, und der Schwanz Befehl ist zu sehen, aber es nicht, um es zu log_Y. Warum? Ist es, weil der Befehl versucht, "vollständigen" tail-f, bevor sie führt die> (redirect) auf log_Y? Gibt es einen besseren Weg zu dieser Vorgehensweise? TYIA |
|
||||
|
Versuchen Sie es mit
tail-f log_X | grep n >> log_Y Ich bin mir nicht sicher, dass dies funktionieren würde ... Ich kann hinzufügen, dass die Befehle auf beiden Seiten einer Pipe "|" gestartet werden und synchron ... und wir wissen, dass jeder Befehl wie grep endet nur dann, wenn es sieht, ein EOF, die "tail-f" nicht geben, da es in einer Endlosschleife der Suche nach neuen Linien angehängt ... so ... tail-f log_X | grep n sollte funktionieren und die "neuen" Zeilen mit "n" nach stdout, wie und wann sie fügt log_x ... Es kann ein Problem mit Weiterleitung, dann verwenden Sie die Umleitung im Append-Modus >> und lassen Sie es uns wissen! Prost! Vishnu. |
|
||||
|
Vishnu:
Ich habe versucht mit tail-f log_X | grep n>> log_Y gestern ... es hat nicht funktioniert. Ich habe auch versucht ein tail-f log_X | grep n>! log_Y. No Go. Der Grund, warum ich mich mit tail-f ist, weil ich dies für eine "Echtzeit-Überwachung". Wenn "n" angezeigt wird, brauche ich es mir zu melden. Jede andere Ideen? TYIA |
|
||||
|
diese Stellen .. Es scheint, dass die Rohrleitung "tail-f" arbeitet mit einigen Betriebssystemen und funktioniert nicht mit einigen ...
http://www.computing.net/solaris/www...orum/1734.html http://www.zsh.org/mla/users/1999/msg00360.html Haben Sie nicht sagen, ob ... tail-f log_X | grep n arbeitet auf Ihrem System .. Das bedeutet, können Sie die Bestellung auf Ihrem Terminal .. Prost! Vishnu. |
|
|||||
|
Versuchen Sie folgendes: Code:
(tail -f /var/log/messages & ) | grep -i login Wenn Sie die in den Schwanz backgroundit können grep Arbeit. Wie Schwanz Deponien auf stdout, grep ist geduldig warten, Lesen von stdin. Dies wird nur Dump auf dem Bildschirm, bis du so etwas wie Strg + C. Wenn Sie möchten, dass etwas mehr erarbeiten, können Sie an der Schwanz-Ausgang an einen anderen fd, und grep lesen ab, dass fd. Viel Glück! |
|
|||||
|
Oh Teufel, warum nicht - hier ist ein leicht verbessertes Design. Führen Sie ihn in den Hintergrund, und es wird in der Benutzer definiert sind, wenn sie sieht, die die genaue Wortgruppe (auch oben). Es ist nicht das pertiest, und wahrscheinlich nicht die schnellsten, wenn die Protokolle wächst sehr schnell, aber es funktioniert, und es ist leicht zu ändern, um Mail, Seite, was auch immer ... Nur aufpassen, dass sie nicht Flut Sie aus, wenn sie die gleiche Botschaft mehrere hundert Mal ge ... Code:
#! /bin/ksh
search_word="search terms"
write_user=user_id
tail -n1 -f /path/to/log |&
while read -p output_line; do
[[ $output_line == *"$search_word"* ]] && {
print "$output_line" | write $write_user
}
done
|
![]() |
| Lesezeichen |
| Thread Tools | Suche diesen Thread |
| Anzeige-Modi | Rate this thread |
|
|