Oggi ho sistemato un po’ lo script “Treshold Controller” che uso per collegarmi ad internet tramite la Naviga3.
Per chi si fosse perso le puntate precedenti faccio un riassunto, tale script lancia la connessione tramite Wvdial e rimane in esecuzione in un terminale; ogni tot secondi (dove tot lo specificate voi…) va a leggere il filesystem /proc e determina quanto traffico avete consumato.
Ovviamente quando raggiungete la soglia imposta dal vostro operatore (che dovete aver specificato nel file… Perchè da solo mica se la sogna!!) lo script vi disconnette brutalmente.
In effetti stavo pensando di fargli chiedere se volete essere disconnessi oppure no, il problema è che nel frattempo i dati scorrono… E si rischia di sforare la soglia e pagare! Quindi per ora preferisco essere sbattuto fuori.
Lo script è l’unico di mia conoscenza che gestisca correttamente il famigerato “bug della mezzanotte”.
In poche parole, vengono conteggiate le soglie del giorno in cui inizia la connessione, per cui se vi connettete a cavallo della mezzanotte il programma non azzera le statistiche e non vi fa sforare.
Sto cercando di renderlo il più portabile possibile, quindi non uso nessun pacchetto esterno, niente tool strani ma solo costrutti di bash (e qualche grep).
Purtroppo per effettuare la connessione è comunque necessario wvdial (anche se stavo pensando di convertire il tutto a pon e poff).
Se avete deciso di usare un altro programma per collegarvi è presente una comoda modalità “monitor” che vi monitora comunque i dati scambiati… Ovviamente non è in grado di disconnettervi in automatico! Però vi avvisa se sforate!!
Il programma lo trovate QUI
Fatemi sapere cosa ne pensate.

Ciao Ale,
leggevo sul blog di Portus del tuo script e ti volevo segnalare una cosa simile che ho fatto io (aspettavo notizie da Portus per eventuali collaborazioni ma non ho avuto risposta)
Ti allego il link dove puoi trovare il sorgente:
è sul forum italiano di ubuntu. Volevo scrivere una paginetta da qualche parte, ma il tempo è poco e per ora mi sono accontentato del forum che comunque è molto visibile.
http://forum.ubuntu-it.org/index.php/topic,267277.0.html
Ho visto in giro che tanta gente si è adoperata per fare un controllo del genere, secondo me sarebbe bello unire gli sforzi e fare un tool efficente e completo che permetta di gestire completamente il modem UMTS-GPRS ed aggiungere la funzionalità dell’auto disconnessione che secondo me è fondamentale!
Io uso un database locale per tenere traccia delle connessioni effettuate, quindi ho sempre a disposizione tutti i dati per eventuali elaborazioni che vengono letti come nel tuo caso da /proc. In questo modo risolvo anche il bug della mezzanotte: quando aggiorno il record ogni x secondi controllo che il giorno sia ancora lo stesso altrimenti creo un nuovo record.
Ottima l’idea di fare tutto da bash per non installare nulla però in questo modo non ci limita un po’? Io vorrei ad esempio gestire anche SMS, rubrica, PIN etc etc etc… In fondo installare qualche libreria non credo sia un grosso problema.
Sono contento che ci si stia muovendo in questa direzione, il fatto è che io sto cercando di creare un tool minimale, non deve effettuare connessioni di per se ne gestire altre funzioni avanzate… Ma semplicemente contare i dati in maniera efficiente ed evitare di far sforare le soglie.
Mi piacerebbe dagli una interfaccia come quella di Portus, tramite icona o altro e credo che python sia un ottimo modo per farlo (ormai lo hanno praticamente tutti installato!) anche se la cosa migliore sarebbe usare gtk e/o qt a seconda dell’ambiente grafico usato (o perchè no wxwidgets).
Temo però che la tua gestione del bug della mezzanotte sia sbagliata: facendo come mi hai detto tu cambi “giorno” nei conteggi, mentre le soglie sono ancora quelle del giorno precedente.
Rimaniamo in contatto, se riusciamo a concentrare gli sforzi possiamo pensare anche a funzioni più avanzate!
Ciao.
Capisco la tua posizione minimalista però scusami… se io devo usare internet non è più comodo avere un unico tool che gestisce tutto (soglie comprese!) invece che dover avviare la connessione, poi avviare lo script di controllo etc etc? E’ vero che si può “automatizzare” tutto, però è sicuramente poco user friendly.
Per quanto riguarda il bug della mezzanotte non ho capito perchè dici che è gestito in modo sbagliato. Io ho fatto riferimento al mio tipo di abbonamento (tre.dati plus) e cioè se resto connesso a cavallo della mezzanotte, il conteggio si azzera (verificato sul sito della tre), forse per l’opzione Naviga3 da 50/100 MB non è cosi? Certo è una bella fregatura: se mi confermi che il conteggio non si azzera automaticamente provvedo a modificare!
Aspetta, lo script che uso io effettua la connessione e la disconnessione, quindi non c’è necessità di avviare più programmi; si lancia lo script, si aspetta il via libera e si naviga…
Per quanto riguarda il “bug della mezzanotte”, che è ovviamente presente solo sulle soglie giornaliere, si comporta esattamente come hai specificato tu nel secondo caso: se viene effettuata la connessione alle 23.30 del 12 marzo vengono conteggiate le soglie del 12 fino alla fine della sessione di collegamento. Quindi se io rimango connesso fino alle 2 di notte consumo sempre i dati del 12 marzo, e se supero i 50/100MB del 12 marzo inizio a pagare, nonostante il 12 marzo sia finito da un pezzo!! Per questo viene definito bug.
Non ho invece idea di come si comporti lo “scavallamento” del mese nelle soglie mensili, sarebbe una cosa utile da testare.