Archiv verlassen und diese Seite im Standarddesign anzeigen : an telnetverbindung befehle senden?
ist es irgendwie möglich an eine telnetverbindung befehle zu senden und diese dann auch noch zu bestätigen?
vorhaben:
ich will die internetverbindung vom router z.b per cronjob 22:00 neu aufbauen lassen...
vorgehen:
telnet zum router aufbauen in der console
script: [z.b als conjob]
Eingabe [ZAHL] [ENTER] ->Router
Eingabe [ZAHL] [ENTER] ->Router
Eingabe [ZAHL] [ENTER] ->Router
p.s.: es ist kein zweiter pc oder so sondern ein standalonerouter
verbindung nur über telnet möglich!
michael.sprick
01.09.05, 13:10
ich habe sowas immer in Perl gemacht, aber ich glaube, man kann das relativ einfach mit expect machen...
kannst ja mal die man-page checken
hast du vlt ein perlscript da?
sehr konstruktiv .... lesen kann ich schon selber :eek: schau mal 2 beiträge höher!
michael.sprick
01.09.05, 15:31
per Perlskript ginge das so:
#!/usr/bin/perl
use warnings;
use strict;
use Net::Telnet;
my $Remotehost = 'localhost';
my $Remoteusername = 'user';
my $Remotepassword = 'pass';
my $Prompt = '/# $/'; # Pattern das auf das Shellprompt passt
my $Timeout = 20; # Sekunden
my @Commands = (
'cat /etc/xinetd.d/telnetd',
'who',
'cat /etc/passwd',
'ls -la /'
);
my $Output;
my $Session = Net::Telnet->new(Timeout=>$Timeout,Prompt=>$Prompt);
$Session->open($Remotehost);
$Session->login($Remoteuser,$Remotepass);
foreach my $cmd (@Commands)
{
$Session->cmd(String=>"$cmd",
Output=>\$Output);
print $Output;
print "\n\n";
}
$Session->close();
Wichtig ist:
a) dass das Modul Net::Telnet installiert ist.
b) dass Du das Prompt des Routers kennst.
In diesem Fall handelt es sich um ein '#' gefolgt von einem Leerzeichen.
In @Commands kannst du einfach die ganzen Befehle reinsetzen, die ausgeführt werden sollen....
danke für das script :)
aber der promt ist genau das problem, was ich auch bei expect habe :(
sobald es z.B.
Pasword: ist passt es, wenn es aber
Menüpunkt auswählen ist geht es nicht mehr
habe dann mal expect freigelassen, aber er braucht dann für den nächsten schritt ca 5 sekunden - das dauert mir zu lange :/ kann man das irgendwie verkürzen - in den manpages habe ihc nichts gefunden :(
edit://
set timeout 0 hat es gebracht :)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.