spott õpib bash skripti looma :)
Moderaator: Moderaatorid
Spott ,mu läpatsil on sedasi igatahes.
http://pingviin.org/album_showpage.php?pic_id=132
http://pingviin.org/album_showpage.php?pic_id=132
mul seda klahvi pole, kuid ma sain | tänu Hardi õpetusele.imre kirjutas:Spott ,mu läpatsil on sedasi igatahes.
http://pingviin.org/album_showpage.php?pic_id=132
Seega selle püstkriipsu teema võib lõpetada
Skriptid edasi
Tellige endale sünnipäevaks, sõbrapäevaks või muuks tähtpäevaks kingitus: Kingitused internetist - NetiKink.eu
No kes oskab kosta või miskit kuskile pista:
dump faili asji ilusi läheb, aga telneti "output" täiesti null!
dump faili asji ilusi läheb, aga telneti "output" täiesti null!
Kood: Vali kõik
#!/usr/bin/perl
use Net::Telnet ();
#$host on ruuteri IP aadress
my $host = "192.168.1.254";
$t = new Net::Telnet (Timeout => 1,Prompt => '/$ $/i', dump_log => "/home/imre/xxxxx.html");
$t->open($host);
$t->waitfor('/: $/i');
$t->print("Administrator");
$t->waitfor('/ : $/i');
$t->print("");
#ootab => l�puga prompti, siis saadab sinna2su: ip iflist
$t->waitfor('/=>$/i');
@lines = $t->print("ip iflist");
$t->waitfor('/=>$/i');
$t->print("exit");
[/php]
Keegi kes Perli scriptiga rohkem kodus võiks natukene juhtnööre anda.See võiks olla Prompt => '/\$ $/i',Prompt => '/$ $/i',
Üldiselt, ma jätaks kõik võimaliku perli meetodite hooleks ja alles siis, kui need miskil põhjusel ei toimi, asuksin print ja waitfor asjadega mängima. Sama skript mooduli meetoditega näeks välja umbes selline (ip iflist-i asemel ip link, kuna minu ip ei tea iflistist midagi)
Kood: Vali kõik
#!/usr/bin/perl
use Net::Telnet ();
#$host on ruuteri IP aadress
my $host = "192.168.1.254";
my $user = "Administrator";
my $pass = "";
$t = new Net::Telnet (Timeout =>3,Prompt => '/\$ $/i', dump_log => "/home/imre/xxxxx.html");
$t->open($host);
$t->login($user, $pass);
@lines = $t->cmd("ip link");
$t->print("exit");
print "@lines\n";Kõike hääd,
WK
WK
wk, prompt ei ole takistuseks.
dump_log faili läheb väljund.
Muide, "ip link" ei ole asjakohane käsk kuna tegemist on ruuteriga mida vaja perliga torkida natukene
Samuti see rida:
$t->login($user, $pass); (perl peab enne vastava prompti ära otoama, siis tegutseb edasi)
Probleem pole niivõrd sisselogimisega kuivõrd ainult väljundiga.
s.t minu näidatud koodijupp teeb korrektselt järgnevat:
ühendub ruuteriga, logib sisse, sisestab sinna käsu ja logib välja.
Edasine jutt läheb dump faili siis
Väljund mille saab ruuterisse telnettides ilma perlita oleks järgnev:
mille ta dump faili paiskab on nähtav SIIT LINGIST
Speedtouch 510 puhul näiteks selline scripti jupp:
Nähtav siis SIIT
dump_log faili läheb väljund.
Muide, "ip link" ei ole asjakohane käsk kuna tegemist on ruuteriga mida vaja perliga torkida natukene
Samuti see rida:
$t->login($user, $pass); (perl peab enne vastava prompti ära otoama, siis tegutseb edasi)
Probleem pole niivõrd sisselogimisega kuivõrd ainult väljundiga.
s.t minu näidatud koodijupp teeb korrektselt järgnevat:
ühendub ruuteriga, logib sisse, sisestab sinna käsu ja logib välja.
Edasine jutt läheb dump faili siis
Väljund mille saab ruuterisse telnettides ilma perlita oleks järgnev:
Kood: Vali kõik
Interface Group MTU RX TX Admin Oper
0 loop. . . . . . . . . . . . . . local 65535 2282076 1711355 UP [UP]
1 Internet. . . . . . . . . . . . wan 1492 1460005316 140571108 UP UP
3 LocalNetwork. . . . . . . . . . lan 1500 142911564 1460339555 UP [UP]Speedtouch 510 puhul näiteks selline scripti jupp:
Nähtav siis SIIT
Sääl on olemas see sama väljund, mis Sa saad telnettides. Kas Sulle ei meeldi dumpi vorm? Dump on ju nagunii ainult debugimiseks, vajaliku väljundi saad ikka muutujast.mille ta dump faili paiskab on nähtav SIIT LINGIST
Ma proovisin Sinu skriptiga teise masinasse telnettida, sääl käsku anda ja käsu väljund muutujale omistada. Ei toiminud hästi. Modifitseerisin sellisele kujule, nagu eelmises postituses ja kõik hakkas ilusti toimima. Kas Sa minu modifitseeritud skripti proovisid? Ei toimi? Igatahes sääl Sinu Speedtouch 510 lingil olev skript on tehtud täpselt samade meetoditega nagu minu oma...
Kõike hääd,
WK
WK
wk, päris täpselt ma sind ei mõistnud ja seega otsest abi sinust ei olnud, aga tänud siiski üritamise eest 
Töötav kood oleks siis järgnev:
Teeb oma töö ära - edasine osa peaks olema siis perli ja html sõpruse sobitamine, et asjale kena välimus anda 
Töötav kood oleks siis järgnev:
Kood: Vali kõik
#!/usr/bin/perl
use Net::Telnet ();
#$host on ruuteri IP aadress
my $host = "192.168.1.254";
$t = new Net::Telnet (Timeout => 1, Prompt => '/\$ $/i' , output_log => "/home/imre/xxxxx.html");
$t->open($host);
$t->waitfor('/: $/i');
$t->print("Administrator");
$t->waitfor('/ : $/i');
$t->print("");
$t->waitfor('/>$/i');
@lines = $t->print("ip iflist");
($output) = $t->waitfor('/=>$/i');
print $output;
$t->print("exit");
