In data Wed, May 14, 2003 at 11:30:49AM +0200, testimoni giudicati affidabili sostengono di aver visto Lo'oRiS il Kabukimono aggirarsi con aria sospetta nei pressi del luogo del delitto. Posto a confronto con i suoi accusatori, l'inputato ha farfugliato: > > non so per che motivo questo cavolo di router scassato ogni tot si > > disconnette a random > > io lo saprei fare in C, ma avevo voglia di imparare una roba simile in un > linguaggio interpretato (bash, perl, quellochevuoi), quindi si accettano > volontari per tradurre il seguente pseudo-codice in qualcosa che giri :) Eccolo... potevo fare tutto in perl, ma l'avevo gia` iniziato in bash, cavoli tuoi. Speriamo funzioni, non e` testato. La parte in perl poi, potrebbe esplodere. Quel modulo (Net::Telnet) non l'ho mai usato... I \$ nella parte perl servono ad evitare che la bash espanda quelle che _non_sono_ sue variabili. I punti dove c'e` scritto "# configura" richiedono, appunto, un minimo di configurazione. Casomai non funzionasse, mandami anche il file di log (variabile logfile). Bye, Zingus #!/bin/sh # configura minutes_to_sleep=5 logfile=routernanny.log doping () { { ping -c 1 www.libero.it || ping -c 1 www.ngi.it; } &>$logfile } riconnetti_router () { perl -MNet::Telnet <<PERLSCRIPT # configura \$router=192.168.2.1 \$username=looris \$passwd=looris \$t = new Net::Telnet (Timeout => 10, Prompt => '/=>/')'; \$t->open(\$router); \$t->login(\$username, \$passwd); @lines = \$t->cmd("ppp ifdetach intf=wowF5"); print @lines; @lines = \$t->cmd("ppp ifattach intf=wowF5"); print @lines; PERLSCRIPT &> $logfile } while true; do if ! doping; then # spedisci mail. mail root@lano -s "stato router" <<EOF Dio beo! L'idiota si e` di nuovo disconnesso alle `date +'%H:%M:%S del %d/%m'` EOF # tacca/stacca il router riconnetti_router fi # pennichella sleep $((60 * minutes_to_sleep)); done -- _________ +-------------------------------------------------------+ \/ _____/ / http://as0.da.ru http://as1.da.ru icq:164939262 | ZJR _____/ | alternative mailto:zingus_at_despammed.com | /\______/ +-------------------------------------- Zingus J. Rinkle -+