Re: disconnessioni

  • From: "Zingus J. Rinkle" <1999s039@xxxxxxxxxxxxxxxxxx>
  • To: lano666@xxxxxxxxxxxxx
  • Date: Wed, 14 May 2003 20:58:48 +0200

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 -+

Other related posts: