Moin,
ich möchte zu diagnostischen Zwecken (mein unfähiger Provider braucht das wohl) über einen längeren Zeitraum ping in eine Datei schreiben lassen. Um das entsprechend auswerten zu können, soll da aber n Zeitstempel an den Anfang jeder Zeile. Wie mach ich das?
Dank & Gruß,
Doc.
SYNOPSIS
logger [-46Ais] [-f file] [-h host] [-p pri] [-t tag] [message ...]
DESCRIPTION
The logger utility provides a shell command interface to the syslog(3)
system log module.
The following options are available:
-f file
Log the specified file.
Heisst das, daß ich hier das file angeben kann, in das geloggt wird?
-t tag Mark every line in the log with the specified tag.
Kann ich als tag „echo „date““ angeben?
Und wo geb ich das „ping www.host.tld“ an?
Sorry, aber mit Logging hab ich mich in dieser Form noch nicht beschäftigt. Die Software, die ich so benutze, bringt ihre eigenen Log-Mechanismen mit. Ein paar Sätze dazu wären hilfreich.
Danke,
Doc.
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
man logger
echo „date“
SYNOPSIS
logger [-46Ais] [-f file] [-h host] [-p pri] [-t tag]
[message …]
DESCRIPTION
The logger utility provides a shell command interface to
the syslog(3)
system log module.
The following options are available:
-f file
Log the specified file.
Heisst das, daß ich hier das file angeben kann, in das geloggt
wird?
Urm… das habe ich so nicht gemacht. Und es scheint so auch nicht zu funkionieren. Bei mir geht sowas in die /var/log/allmessages…
-t tag Mark every line in the log with the specified
tag.
Kann ich als tag „echo „date““ angeben?
logger -t ping-statistik $(date)
Und wo geb ich das „ping www.host.tld“ an?
Sorry, aber mit Logging hab ich mich in dieser Form noch nicht
beschäftigt. Die Software, die ich so benutze, bringt ihre
eigenen Log-Mechanismen mit. Ein paar Sätze dazu wären
hilfreich.
echo $(date) $(ping -c 3 www.heise.de | grep min\/avg\/max) \>\> /tmp/pinglog
ich möchte zu diagnostischen Zwecken (mein unfähiger Provider
braucht das wohl) über einen längeren Zeitraum ping in eine
Datei schreiben lassen. Um das entsprechend auswerten zu
können, soll da aber n Zeitstempel an den Anfang jeder Zeile.
Wie mach ich das?
#!/bin/sh
ping $1 | awk ’
{
threshold = 1
match($0,„time=[0-9.]+“)
roundtrip=substr($0,RSTART+5,RLENGTH-5)
if (int(roundtrip) > threshold) {
„date“ | getline timestamp
close(„date“)
print timestamp " " roundtrip
}
}’
threshold ist die schwelle, ab der gelogt werden soll, wenn der roundtrip darueber liegt. falls immer, dann threshold=0.
zieladdresse in argv[1]; ausgabe nach stdout…
gute nacht,
joachim
**less /tmp/pinglog**
Don Feb 27 00:08:27 CET 2003 round-trip min/avg/max = 2353.390/2805.795/3123.843 ms
Don Feb 27 00:08:50 CET 2003 round-trip min/avg/max = 160.186/552.969/1289.240 ms
Don Feb 27 00:08:54 CET 2003 round-trip min/avg/max = 152.610/399.377/880.220 ms
Urm… das habe ich so nicht gemacht. Und es scheint so auch
nicht zu funkionieren. Bei mir geht sowas in die
/var/log/allmessages…
hier kaeme dann die -p pinglog.info option ins spiel, zusammen mit einem eintrag in /etc/syslog.conf so in der folgenden form:
pinglog.* /var/log/pinglog
joachim, der wegen so ner kleinigkeit doch nicht den syslogd belaestigen wuerde 
echo $(date) $(ping -c 3 www.heise.de | grep min\/avg\/max)
\>\> /tmp/pinglog
Das verstehe ich. Danke.
Gruß,
Doc.
#!/bin/sh
ping $1 | awk ’
{
threshold = 1
match($0,„time=[0-9.]+“)
roundtrip=substr($0,RSTART+5,RLENGTH-5)
if (int(roundtrip) > threshold) {
„date“ | getline timestamp
close(„date“)
print timestamp " " roundtrip
}
}’
threshold ist die schwelle, ab der gelogt werden soll,
wenn der roundtrip darueber liegt. falls immer, dann threshold=0.
Das verstehe ich.
zieladdresse in argv[1];
Das verstehe ich nicht. Was ist argv[1] und wo definiere ich das?
ausgabe nach stdout…
Hier bin ich weider dabei.
Danke soweit!
Gruß,
Doc.
zieladdresse in argv[1];
Das verstehe ich nicht. Was ist argv[1] und wo definiere ich
das?
ok, zu viel c in letzter zeit…
argv[] ist das array, das in c die kommandozeilenargumente enthaelt. argv[1] ist also das erste.
der aufruf ist dann also:
$ nohup /path/to/pingtool www.heise.de >/var/log/pinglog &
joachim
ps: wenn dein ping so haessliche antworten wie
joachim, der wegen so ner kleinigkeit doch nicht den syslogd
belaestigen wuerde 
Eben. „multilog“ regelt…
ach was - awk rules…
Hm. Ja.
Da habe ich mich - ehrtlich gesagt - noch nicht herangetraut…
Sebastian
#!/bin/sh
[…]
zieladdresse in argv[1];
Das verstehe ich nicht. Was ist argv[1] und wo definiere ich
das?
Das ist das erste dem Script übergebene Argument.
also
pinglog **www.wer-weiss-was.de**
Sebastian
ach was - awk rules…
Hm. Ja.
Da habe ich mich - ehrtlich gesagt - noch nicht herangetraut…
nicht wirklich schwer, wenn man nen bisschen c kann. und eben quasi ueberall vorhanden (im gegensatz zu perl) und immer fuer nen schnellen einzeiler gut.
joachim, der auch schon hunderte von zeilen in awk skripten musste, weil’s auf der kiste partout kein perl geben durfte. beim naechsten release war ich dann nicht mehr dabei und ploetzlich gab’s perl - ergo, man muss nur laut und lang genug schreien…
ach was - awk rules…
nicht wirklich schwer, wenn man nen bisschen c kann.
… und damit starte ich leider voraussetzungslos. Vielleicht gibt es ja ein gutes Tutorial - meine paar sedIsmen habe ich mit einem IBM-Tutorial erlernt. Nicht, daß ich es besonders weit gebracht hätte, aber mglw. haben die auch sowas für awk…
joachim, der auch schon hunderte von zeilen in awk skripten
musste, weil’s auf der kiste partout kein perl geben durfte.
beim naechsten release war ich dann nicht mehr dabei und
ploetzlich gab’s perl - ergo, man muss nur laut und lang genug
schreien…
Jaja und der nächts Schreihals setzt das dann auf VBS um… ;-}
Sebastian
Danke für Dein Script - es macht genau das, was ich will.
bitte, immer gern. diesmal war es auch nur ein griff in die
skriptbox, so nen problem hat man oefter mal, und wenn die
netzwerker dann wieder verkuenden, dass das netz keine
probleme hat, dann muessen daten sprechen…
Ja. Da fällt mir ein, daß ich auf Arbeit auch mal ein wenig Benchmarken wollte.
Mal sehen, wie ich das umbaue, daß es mit ‚ab‘ läuft. Ping ist schonmal gut.
Hm…