27 Mai/08 0
Linux counter per le connessioni UMTS
Ho scritto un piccolo script per il conteggio del traffico in UMTS / GPRS e di calcolare i costi sostenuti. Ne ho bisogno, perché ho in programma di breve conversazione con una scheda prepagata per navigare ALDI, poiché i prezzi sono troppo alti nel mio contratto regolare. (ALDI: 0,24 € per megabyte / E-PLUS-BASE 6,14 € !!!!!)
Nel migliore dei casi, è sufficiente mettere alla fine della sua dial-up script in modo che immediatamente dopo la connessione inizia a contare.
Il tutto senza alcuna garanzia .... Non so se è ostacolato o qualcosa del genere, in modo da utilizzare a proprio rischio
Nel mio caso con BASE potrebbe essere molto costoso, quindi state attenti!
# / Bin / bash # Conteggio del traffico - Visualizza informazioni sul traffico per la connessione corrente e # Alculated costi per la connessione # CONFIG: # Mappa della connessione di rete Interface = eth0 # 1 il costo per MB di traffico PREIS_PRO_MB = 0,24 # UpdateInterval in sec UpdateInterval = 5 ############################################ # Calcolato dal byte MB calc_mb () { BYTE = $ 1 MEGABYTES = `echo" scale = 2; $ BYTES / 1048576 "| bc` # Echo "$ *** *** MEGABYTES" } # Recupera dati di traffico da ifconfig get_data () { # RX bytes: 3435333852 (3.1 GiB) TX bytes: 1233166424 (1.1 GB) TRAFFICCUT INTERFACCIA = `ifconfig $ | grep" RX bytes "` # Ricevuto cutten TMP = `echo $ TRAFFICCUT | cut-d:-f2` IN = `echo $ TMP | cut-d" "-f1` # INVIATI cutten TMP = `echo $ TRAFFICCUT | cut-d:-f3` OUT = `echo $ TMP | cut-d" "-f1` # CALCOLARE TOTALE TOTALE = `echo" $ $ IN + OUT "| bc` } S_TOTAL = 0 S_IN = 0 S_OUT = 0 get_data TOTALE = $ START_TOTAL START_IN = $ IN START_OUT = $ OUT # Echo $ START_TOTAL # Echo $ START_IN # Echo $ START_OUT chiaro mentre [1] fare get_data # Determina il traffico attuale in occasione della riunione S_TOTAL = `echo" $ TOTALE - $ START_TOTAL "| bc` # Echo "*** S_TOTAL: $ S_TOTAL ***" S_IN = `echo" $ IN - $ START_IN "| bc` S_OUT = `echo" $ OUT - $ START_OUT "| bc` # Converti MB calc_mb $ TOTALE, TOTALE = $ MEGABYTES calc_mb $ IN, IN = $ MEGABYTES calc_mb $ OUT, OUT = $ MEGABYTES calc_mb $ S_OUT; S_OUT = $ MEGABYTES calc_mb $ S_IN; S_IN = $ MEGABYTES calc_mb $ S_TOTAL; S_TOTAL = $ MEGABYTES # Determina i costi COSTO = `" scale = 2; $ S_TOTAL PREIS_PRO_MB * $ "echo | bc` # Echo "*** COSTI $ - $ S_TOTAL - *** $ PREIS_PRO_MB" # Aggiornamento dei dati di sessione # Echo $ TRAFFICCUT # Echo echo "totale di $ INTERFACCIA: In: MB $ IN | Out: $ OUT MB | Totale: $ TOTALE MB" echo "$ a SESSIONE INTERFACCIA: In: $ S_IN MB | Out: $ S_OUT MB | Totale: $ S_TOTAL MB" echo "COSTO: $ COSTO €" sleep $ UpdateInterval chiaro fatto
