Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8411[/thread]

Problem beim Login per Net::Telnet auf Router



<< >> 8 Einträge, 1 Seite
krusty
 2006-10-12 20:35
#70731 #70731
User since
2006-01-27
91 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

habe ein Problem bei dem Zugriff auf einen Router über mein Perl Script.

Der Login funktioniert, das sehe ich in der Ausgabedatei.
Nur wenn ich mich eingeloggt habe bekomme ich die Fehlermeldung
"timed-out waiting for command prompt".

Mein Script sieht so aus:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
my $session = Net::Telnet->new  (Host => $ip,
Timeout => "30",
Input_log => "/debug/".$ip."_input.log",
Output_log => "/debug/".$ip."_output.log",
errmode => \&errorhandler
);
# Einloggen
$session->login('user', 'password');
# Einlesen der Befehle
$noscreen = "/srv/www/noscreen.cfg";
open(NO, "<$noscreen");
while ($zeile = <NO>)
{
sleep 2;
$session->cmd($zeile);
}
close (NO);
$session->close;


Könnt ihr mir sagen was ich falsch mache.

Gruß
daywalka
 2006-10-12 21:11
#70732 #70732
User since
2004-02-03
15 Artikel
BenutzerIn
[default_avatar]
Wenn du keinen Prompt festlegst, wird dieser standardmässig auf folgenden Wert gesetzt:
Code: (dl )
/[\$%#>] $/


Eventuell matched der Prompt deines Router also nicht auf obigen Ausdruck. Dann am besten manuell per Telnet einloggen, alles was am Anfang der Eingabezeile steht, stellt den Prompt dar. Festlegen kannst du den im nachhinein mit folgender Methode:
Code: (dl )
$session->prompt('/$prompt/');


Siehe auch CPAN:Net::Telnet
krusty
 2006-10-13 09:54
#70733 #70733
User since
2006-01-27
91 Artikel
BenutzerIn
[default_avatar]
Hi, danke für die schnelle Antwort. Habe mittlerweile auch herausgefunden das das Problem daran liegt das der Prompt nicht lesbar ist.
folgender Prompt wird bei meinem Router ausgegeben.
Wie ihr seht ist dieser zweizeilig. Wie kann ich da den Prompt suchen?

Code: (dl )
1
2
root@Lancom1721:/
>(read only)


Wie müsste ich dann den String $prompt definieren damit der Prompt erkannt wird?
Code: (dl )
my $prompt = "root@Lancom1721:/>(read only)";


Habe schon fast alle Möglichkeiten ausprobiert, aber bisher keine Lösung gefunden.

Gruß\n\n

<!--EDIT|krusty|1160719536-->
topeg
 2006-10-14 02:44
#70734 #70734
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
versuch mal sowas:
Code: (dl )
$session->prompt('/\nroot.+?\n>.*?$/s');
\n\n

<!--EDIT|topeg|1160779492-->
renee
 2006-10-14 11:26
#70735 #70735
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
vielleicht reicht ja auch nur das >(read only), also
Code: (dl )
$session->prompt('/>(?:\(read only\))?$/');
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
topeg
 2006-10-14 12:57
#70736 #70736
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
Theoretisch schon, aber dann hatt er in der Befehlsausgabe am Ende immer noch den rest des Komandozeilenpromptes. Der Telnetstream wird ja mit der Regexp gesplittet und der Komandozeilenprompt wird gelöscht. (so zumindest habe ich das in Erinnerung.)
renee
 2006-10-14 13:28
#70737 #70737
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das weiß ich nicht, da ich noch nicht mit CPAN:Net::Telnet gearbeitet habe...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
krusty
 2006-10-15 19:29
#70738 #70738
User since
2006-01-27
91 Artikel
BenutzerIn
[default_avatar]
Danke schonmal an euch beide für die Anregungen.

Habe das Problem jetzt anders lösen können. Habe einen anderen Benutzer genommen, der keine Einschränkungen hat. Damit verschwindet hinter dem Prompt das (read only). Somit greifen dann auch die normalen Prompt Muster. (>).

Werde es aber trotzdem nochmal mit euren Vorschlägen versuchen.

Danke
<< >> 8 Einträge, 1 Seite



View all threads created 2006-10-12 20:35.