automatisierte Trace-Logs per Batch

Forum zu aktuellen Geräten der LANCOM Router/Gateway Serie

Moderator: Lancom-Systems Moderatoren

Antworten
Benutzeravatar
terror4tec
Beiträge: 64
Registriert: 13 Jun 2005, 09:30
Wohnort: Absurdistan

automatisierte Trace-Logs per Batch

Beitrag von terror4tec »

Liebe Gemeinde,
anläßlich der erneuten Probs mit Telekom, benötige ich die Lösung für folgendes Szenario:

Ein Batch Job startet plink auf den LANCOM-Router. Dazu benutzt plink eine gespeicherte Session in Putty namens ppptrace (hab ich selber angelegt und gespeichert). Im selben Verzeichnis ist ein TFTP-Server Installiert. Ebenso liegt hier eine Datei Namens ppptrace. Diese Datei soll die Script Datei sein, die durch die Option (-m file) nach dem automatischen SSH Connect ausgeführt werden soll. Inhalt meiner "script"-Datei ist dieser:
beginscript
trace + ppp
exit

Ich bekomme aber dann ein Error in line 2 auf dem Lancom, wenn ich das ganze mal mit loadscript - s xxx.xxx.xxx.xxx -f ppptrace testen will.
:D TFTP funzt,
:D SSH Login funzt auch. Nur:

WIE BEKOMME ICH DIE ZEILE

TRACE + PPP

AN EINE BESTEHENDE SSH-SESSION ÜBERTRAGEN ??? :twisted: -

Hergott wirf Hirn vom Himmel...
Danke für Eure Zeit!
...kann man Administratoren eigentlich einen "guten ab-end" wünschen? ...
Benutzeravatar
terror4tec
Beiträge: 64
Registriert: 13 Jun 2005, 09:30
Wohnort: Absurdistan

Beitrag von terror4tec »

Ich versuche gerade mit plink einen Automatisierten PPP-Trace hinzubekommen..

plink.exe -v -ssh -l TRACE -pw TRACE 192.168.42.25

Hat einen normalen Session Start zur Folge:

Looking up host "192.168.42.25"
Connecting to 192.168.42.25 port 22
Server version: SSH-2.0-lancom
We claim version: SSH-2.0-PuTTY_Release_0.60
Using SSH protocol version 2
Using Diffie-Hellman with standard group "group14"
Doing Diffie-Hellman key exchange with hash SHA-1
Host key fingerprint is:
ssh-rsa 1024 03:56:e6:52:e2:d2:da:f0:73:b5:df:3d:09:b8:54:b7
Initialised AES-128 CBC client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-128 CBC server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Using username "TRACE".
Sent password
Access granted
Opened channel for session
Allocated pty (ospeed 38400bps, ispeed 38400bps)
Started a shell/command


#
| LANCOM 1823 VoIP (Annex B)
| Ver. 7.29.0031 / 06.02.2008 / 2.73/a27.4.11
| SN. 0815LMAA
| Copyright (c) LANCOM Systems

ROUTNIX, Connection No.: 003 (LAN)


TRACE@ROUTNIX:/
>(read only)


Leider kann ich an dieser Stelle keine Kommandos mehr an meinen geliebten LANCOM schicken. Daher versuchte ich folgendes:

plink.exe -v -ssh -l TRACE -pw TRACE 192.168.42.25 TRACE + PPP

Mit der Folge das ich sofort aus der Session fliege:

Looking up host "192.168.42.25"
Connecting to 192.168.42.25 port 22
Server version: SSH-2.0-lancom
We claim version: SSH-2.0-PuTTY_Release_0.60
Using SSH protocol version 2
Using Diffie-Hellman with standard group "group14"
Doing Diffie-Hellman key exchange with hash SHA-1
Host key fingerprint is:
ssh-rsa 1024 1024 03:56:e6:52:e2:d2:da:f0:73:b5:df:3d:09:b8:54:b7
Initialised AES-128 CBC client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-128 CBC server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Using username "TRACE".
Sent password
Access granted
Opened channel for session
Started a shell/command
Disconnected: All channels closed


Wenn ich aber anstatt <TCP + PPP> z.B. Sleep 9000 eingebe, fliege ich erst nach 9 Sekunden aus der Session. Selbst der Aufruf mit der Option –m PPPTRACE (Inhalt des Files 1Zeile: TRACE + PPP) hat den unmittelbaren Rauswurf zur Folge. -> Disconnected: All channels closed :x

Was mache ich Falsch?
:?:
...kann man Administratoren eigentlich einen "guten ab-end" wünschen? ...
Benutzeravatar
alf29
Moderator
Moderator
Beiträge: 6207
Registriert: 07 Nov 2004, 19:33
Wohnort: Aachen
Kontaktdaten:

Beitrag von alf29 »

Moin,

wenn Du ein Kommando an den SSH-Client als Parameter anhängst, dann stellt SSH an das
LANCOM keinen Shell-, sondern einen (Remote) Exec-Request - d.h. es wird keine interaktive Shell
geöffnet, die solange offen bleibt, bis man 'quit' sagt, sondern es wird genau dieses eine Kommando
in einem Shell-Kontext ausgeführt und die Shell beendet sich danach von selber wieder. Trace-
Ausgaben kommen genauso wie die Ausgaben von einem Ping *nebenläufig* zu der eigentlichen
Shell-Sitzung, d.h. das Tracing wird implizit mit beendet, wenn die Shell sich beendet.

Wenn Du nur ein Kommando absetzen und die SSH-Shell dauerhaft offen halten möchtest, bauchst
Du etwas, was einmalig das Trace-Kommando an das LANCOM absetzt und danach keine
weiteren Zeichen mehr liefert - die Verbindung an sich aber offen hält. Ich habe dafür gerade mal
so etwas in C gestrickt:

Code: Alles auswählen

#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv)
{
  printf("trace + wlan-data\r\n");
  fflush(stdout);

  while (1)
    sleep(5);

  return 0;
}
Wenn man das dann so in eine Pipe einbindet:

Code: Alles auswählen

./lcstrace  | ssh root@<Adresse des LANCOM>
dann startet das LANCOM den Trace und wartet auf weitere Eingaben - die dieses Mini-
Progrämmchen natürlich nie liefert. Die SSH-Verbindung bleibt offen, bis jemand Ctrl-C
drückt.

Eventuell kann man dieses Progrämmchen noch so verfeiern, daß es in der Sleep-Schleife
alle paar Minuten eine Leerzeile schickt, so daß das LANCOM die Sitzung nicht wegen
Idle-Timeout zumacht. Oder man liest selber von stdin und leitet das weiter. Das bleibt
dem geneigten Leser als Übung überlassen ;-)

Der Flush-Befehl ist übrigens wegen der Pufferung auf dem Stream wichtig...

Gruß Alfred
Benutzeravatar
terror4tec
Beiträge: 64
Registriert: 13 Jun 2005, 09:30
Wohnort: Absurdistan

*R*E*S*P*E*C*T*

Beitrag von terror4tec »

Moin,Moin

Backslash, Du alter H4CK0R ! Vielen DANK !!!

Während ich noch unter dem Einflus der Nacht stehe und versuche mit dem ersten Kaffe in den Tag zu kommen, schreibst Du schon C# Programme für mein Problem.
:shock:
Am Sonntag... Unbezahlbar... :oops:

Gestern schlich ich schon um den WSH herum wie die Katze um den heißen Brei. Ich weiß ... Enterprise - Computing und so... Profis arbeiten nicht Batch sonder darunter...

Aber: A.) Nie schrieb ich ein c# Proggi :oops: B.) Nicht alle Admins haben diese Skill-level, benötigen aber automatisierte Traces :oops: (s.u.) Daher die Frage: Geht es nicht auch ohne C# -> Keep it simpel -> ggf. sogar als Batch? :roll:

:idea: Mein Ziel ist es, ein ganzes Arsenal an universellen Trace-Abragen in einzelne Tasks (batches) zu erstellen.

Wenn es dann Stress mit dem Provider gibt, kann mann über <geplante Tasks> sehr individuell und lückenlos "Beweise" sammeln. :twisted:

By the way, solche Einzeiler ließen sich auch einfacher hier veröffentlichen

NOCH MAL 1k DANK AN BACKSLASH FÜR DEN SUPPORT !!!!!!!!!!!!!!!
...kann man Administratoren eigentlich einen "guten ab-end" wünschen? ...
Benutzeravatar
alf29
Moderator
Moderator
Beiträge: 6207
Registriert: 07 Nov 2004, 19:33
Wohnort: Aachen
Kontaktdaten:

Beitrag von alf29 »

Moin,
Backslash, Du alter H4CK0R ! Vielen DANK !!!
Ähem....
schreibst Du schon C# Programme für mein Problem.
Das ist ganz ordinäres Ansi-C. C# - so habe ich gehört - so eine Art C-Plusplus-Minusminus,
dank meiner konsequenten Windows-Verweigerung kann ich dazu aber keine näheren
sachdienlichen Hinweise abgeben.
aher die Frage: Geht es nicht auch ohne C# -> Keep it simpel -> ggf. sogar als Batch?
Vermutlich würde man das mit den passenden Shell-Werkzeugen auch hinbekommen. Unter
Unix müßte das mit echo und einer Endlosschleife eigentlich sehr ähnlich funktionieren. Zu Windows,
WSH und ähnlichem kann ich mich wie gesagt nicht äußern. Ich könnte irgendwann heute mal
die eNTe anwerfen und diese fünf Zeilen durch MinGW jagen...da ich dort aber wieder keine
OpenSSH drauf habe, tue ich mich mit den Ausprobieren schwer 8-)

Gruß Alfred
“There is no death, there is just a change of our cosmic address."
-- Edgar Froese, 1944 - 2015
Antworten