Zum Inhalt springen

[Perl] RegEx gesucht


Empfohlene Beiträge

Moin,

ich will einen MRTG füttern und benötige daher für folgendes Szenario einen Regex.

1.

Es wird Ping von einer Cisco abgesetzt

Rückmeldung sieht wie folgt aus:

hostname#ping 193.0.0.193

Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 193.0.0.193, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/8 ms

Die fett markierten Zahlen will ich haben

Für die Zahlen gilt:

1. Zahl 0 <= Zahl <= 100

2. und 3. Zahll: 0 <= Zahl <= 3000

Daaanke (ja ich bin für regex zu plöd :D)

Link zu diesem Kommentar
Auf anderen Seiten teilen

($a, $b, $c) = m:Success rate is (\d+) percent .*? \d+/(\d+)/(\d+) ms:;

Es gäbe noch etliche Möglichkeiten mehr. Schön zeilenweise reinschieben... oder entweder lf und falls vorhanden cr durch nichts ersetzen oder Modifizierer hinzufügen. Von letzterem kann ich nur abraten.

Link zu diesem Kommentar
Auf anderen Seiten teilen

super vielen dank .. wird morgen direkt in der firma getestet :)

zeilenweise füttern sollte kein problem sein.. übergabe kommt von net::telnet

insgesamt sollen damit fehleranalysen innerhalb von MPLS vpns analysiert werden können und sporadischer packet loss bzw. stark schwankende RTT's gemonitored werden. und da komm ich halt nur ran, wenn ich zuvor irgendwie in das MPLS VPN reinkomme.. so schön mpls vpns im vergleich zu ipsec sind, aber das monitoring wird dadurch nicht leichter :D

ich melde mich dann morgen, wenn ichs getestet hab und auf probleme gestossen bin :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm irgendwie hab ich noch 2 Probleme.

Beim ersten stell ich mich nur zu blöd an..

ich hab die zeile "Success Rate is......." in $ergebnis vorliegen

wie schieb ich die zeile denn nu an den ausdruck rüber :confused:

irgendwie brauch ich mehr kaffee..

das zweite is, dass ich MRTG ja nur max 2 zahlen übergeben kann

ich brauche also zwei regex ..

einmal die rückmeldung zum packet loss ($a in obigem regex aber halt einzeln)

und einmal die durchchnittliche und maximale pingzeit ($b und $c von oben)

aber halt einzeln, damit ich 2 scripte hab. eins dass $a zurückliefert und eins das $b und $c zurückliefert..

*gähn*

es ist zu früh am morgen :( help appreciated ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also die Regex funktioniert:

chef@lx ~ $ echo "Success rate is 100 percent (5/5), round-trip min/avg/max = 4/7/8 ms" | perl -ne '($a, $b, $c) = m:Success rate is (\d+) percent .*? \d+/(\d+)/(\d+) ms:; print "\$a=$a, \$b=$b, \$c=$c\n";'

$a=100, $b=7, $c=8

Du müsstest für Dein Problem folgendes tun:

($a, $b, $c) = ($ergebnis =~ m:Success rate is (\d+) percent .*? \d+/(\d+)/(\d+) ms:);

Die Werte liegen dann in den drei Skalaren vor. Mir ist jetzt leider nicht ganz klar, weshalb Du das jeweils getrennt haben willst, aber auch das ist möglich:

($a) = m;Success rate is (\d+) percent;

($b, $c) = m;\d+/(\d+)/(\d+) ms;

Link zu diesem Kommentar
Auf anderen Seiten teilen

Thx !!

wird getestet, wenn ich von chef ma wieder grünes licht krieg :rolleyes:

ist ja nebenprojekt neben den normalen sachen...

ich brauch dat ganze einzeln, weil ich dem mrtg das ganze ja übergeben tu.

und ich will 2 getrennte grafiken (eine für die RTT's und eine für den Packetloss), weil das ganze ansonsten arg unübersichtlich wird...

2 getrennte grafiken krieg ich aber nur, wenn ich den mrtg 2 mal "piesacke" ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...