Programm um Paketverlust zu loggen

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
Knogle
Beiträge: 465
Registriert: 06.05.2016 19:29:00
Lizenz eigener Beiträge: MIT Lizenz

Programm um Paketverlust zu loggen

Beitrag von Knogle » 03.11.2016 21:35:28

Ich gruesse euch liebe Community
Da ich aktuell starke Probleme mit meiner Leitung habe, wuerde ich mit meinem NAS gerne den Ping bzw. den Packetverlust aufzeichnen.
Gibt es da irgendwelche Programme? Ich wuerde das gerne als Textdatei ausgeben bzw. speichern, und gerne ueber einige Tage hinweg durchfuerehn

Bitte um Rat wenn jemand was kennt

DeletedUserReAsG

Re: Programm um Paketverlust zu loggen

Beitrag von DeletedUserReAsG » 03.11.2016 23:57:24

Die Ausgabe von ping in eine Datei umzuleiten, reicht nicht?

BenutzerGa4gooPh

Re: Programm um Paketverlust zu loggen

Beitrag von BenutzerGa4gooPh » 04.11.2016 08:50:14

mtr/xmtr (bei Bedarf ersteres auch in Datei umleiten)?
https://www.thomas-krenn.com/de/wiki/Li ... se_mit_mtr

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: Programm um Paketverlust zu loggen

Beitrag von sbruder » 04.11.2016 10:01:26

Knogle hat geschrieben:Ich gruesse euch liebe Community
Da ich aktuell starke Probleme mit meiner Leitung habe, wuerde ich mit meinem NAS gerne den Ping bzw. den Packetverlust aufzeichnen.
Gibt es da irgendwelche Programme? Ich wuerde das gerne als Textdatei ausgeben bzw. speichern, und gerne ueber einige Tage hinweg durchfuerehn
Als Programme: shell + ping

Code: Alles auswählen

#!/bin/sh
TEMP=$(mktemp)
ping -q -c 10 8.8.8.8 > $TEMP
loss=$(tail -n 2 $TEMP |head -n 1|cut -d' ' -f 6)
rm $TEMP
echo "$(date): $loss" >> /tmp/foo
(Ist nur schnell zusammengefrickelt, kann man besser machen)

/tmp/foo durch gewünschten Pfad ersetzen und das dann per Cronjob so oft gewünscht ausführen.

Die Latenz bekommst du mit

Code: Alles auswählen

#!/bin/sh
TEMP=$(mktemp)
ping -q -c 10 8.8.8.8 > $TEMP
latency=$(tail -n 1 $TEMP|cut -d' ' -f 4|cut -d'/' -f 2)
rm $TEMP
echo "$(date): $latency" >> /tmp/foo

CBG
Beiträge: 95
Registriert: 16.12.2013 22:53:07

Re: Programm um Paketverlust zu loggen

Beitrag von CBG » 15.11.2016 21:14:39

Hi, das ist ja cool mit der Latenz und dem Paketloss!
Manometer..

Kann ich das auf meinem Raspi auf einer Webseite anzeigen lassen?

Benutzeravatar
sbruder
Beiträge: 333
Registriert: 24.06.2016 13:54:36
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Franken

Re: Programm um Paketverlust zu loggen

Beitrag von sbruder » 15.11.2016 21:39:23

CBG hat geschrieben: Kann ich das auf meinem Raspi auf einer Webseite anzeigen lassen?
Ja, ich habe da mal ein Skript geschrieben, habe es aber schon seit längerem nicht mehr angerührt. Finden kannst du es unter https://sbruder.de/files/pingtest.zip
(Ja ich weiß, dass das viel besser geht und so, das Skript ist uralt)

Hier mal eine Anleitung zum Benutzen:

Das Ding ist ein Shellscript (benötigt mksh, rrdtool und noch irgendwas, das mir gerade entfallen ist) und generiert Grafiken. Den Inhalt der Datei `crontab` musst Du in eine Crontab hinzufügen

Code: Alles auswählen

(sudo) crontab -e
Den Pfad zum Skript musst Du anpassen (bigdata steht für meine große Festplatte (damals) :D)
Dann musst du die Datei `setup.sh` ausführen.
Ab dann sollten die Statistiken verfügbar sein (index.htm für die aktuelle Stunde, day.htm für den aktuellen Tag und so weiter).
Das Template braucht 3 Stylesheets (die kannst du dir von https://sbruder.de/bootstrap/css/bootstrap.min.css https://sbruder.de/css/jumbotron-narrow.css und https://sbruder.de/css/blink.css herunterladen und dann in das jeweilige Verzeichnis tun)

Ich glaube so funktionierts, falls nicht einfach nachfragen, dann schau ich noch mal nach.

Falls du es ganz einfach haben willst und nur die Zahlen haben willst:

Code: Alles auswählen

<?php
$stats = simplexml_load_file("/path/to/file.xml");
echo 'Paketverlust: ' . $stats->loss . "\n";
echo 'Latenz: ' . $stats->latency . "\n";
?>
Die XML-Datei wird dadurch generiert:

Code: Alles auswählen

#!/bin/sh
cat > /path/to/file.xml << EOF
<?xml version="1.0" encoding="utf-8"?>
<stats>
 <loss>$(/path/to/lossscript.sh)</loss>
 <latency>$(/path/to/latencyscript.sh)</latency>
</stats>
EOF
Die Letze Zeile in beiden Skripten muss dann lauten:

Code: Alles auswählen

echo "$loss"
und

Code: Alles auswählen

echo "$latency"
Ich hoffe du verstahst von was ich rede, sonst frag einfach nach.

Antworten