[Python] telnetlib gestione router
Manlio Perillo
manlio.perillo a gmail.com
Mer 4 Maggio 2011 16:00:59 CEST
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Il 04/05/2011 11:34, Nicola Ferrari ha scritto:
> Se riesco ci darò un occhiata...
> Una domanda "teorica"... una volta che da telnet faccio "reboot", per
> sapere se ha riavviato devo controllare se la rete è "su" giusto??
> solo che nel momento in cui faccio reboot al momento in cui la rete
> "cade", passa un po' di tempo.. come faccio a risolvere? Faccio uno sleep ?
> Di quanti secondi?
>
Non è un problema banale.
Una cosa che puoi fare è togliere la chiamata ad exit, ed invece
mantenere la chiamata a tn.read_all() dopo il reboot
In questo modo il programma resta bloccato fino a quando la
connessione non verrà chiusa dal server.
Purtroppo TCP non è troppo sveglio ad accorgersi che una connessione è
interrotta (ha i suoi buoni motivi), ma per questo puoi utilizzare
TCP_ALIVE:
http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/usingkeepalive.html
http://utcc.utoronto.ca/~cks/space/blog/python/TcpKeepalivesInPython
Nel tuo caso: http://paste.pocoo.org/show/382788/
L'ho provato con il mio ruoter (adattando il codice).
Dato che non chiami exit, la connessione viene chiusa quando il router
disconnette la rete.
N.B.:
il programma non è portabile; credo funzioni solo su Linux.
Su altri sistemi UNIX è da verificare come ottenere lo stesso effetto.
Ciao Manlio
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAk3BXBsACgkQscQJ24LbaURceQCeMBF6GXYuFO8OIY2fXqSJ9R4l
+/QAn0no/LjUs1juMUhXbOwXgFXkk47/
=iYy7
-----END PGP SIGNATURE-----
Maggiori informazioni sulla lista
Python