Traffic.py
Da Blah Hacklab, GNU/Linux e software libero.
Questo programmino fatto in python non fa altro che monitorare il file /var/log/messages e calcolare il traffico effettuato nel giorno. State attenti e guardate comunque sempre il sito tre.it per essere sicuri. Un altro consiglio è scollegarsi sempre a mezzanotte altrimenti la tre potrebbe continuare a contare il traffico come il giorno precedente e quindi andare fuori dalla soglia!
Per installare il programmino create ad esempio il file /usr/local/bin/traffic e poi dategli i permessi di esecuzione cosi:
chmod +x /usr/local/bin/traffic
#! /usr/bin/python
# Programma per monitorare il traffico dial-up dai log di pppd.
# By ovenpasta. Dominio pubblico.
import gtk,gobject
import os,re
timeout_k=5000
class W (gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
self.set_title("Traffic ;)")
self.show()
self.l=gtk.Label()
self.l.show()
self.add(self.l)
self.connect("destroy",lambda x: gtk.main_quit())
self.update()
def update(self):
f=file ("/var/log/messages").readlines()
recv_a=0
sent_a=0
try:
p=os.popen("/usr/sbin/pppstats 2>&1").readlines()[1].strip()
r=re.compile("(\d+)\s*(\d+\s*){4}\s*[|]\s*(\d+).*")
m=r.match(p)
sent_a=int(m.group(3))
recv_a=int(m.group(1))
except:
pass
w=os.popen("LANG=C date +%b\ %e").readline().strip()
r=re.compile("(\w+ +\d+).+pppd.+Sent (\d+).+received (\d+).*")
sent=0
recv=0
for x in f:
m=r.match(x.strip())
if m is not None and m.group(1)==w:
sent+= int(m.group(2))
recv+= int(m.group(3))
k=1024
sent/=k
recv/=k
sent_a/=k
recv_a/=k
s="Traffic for %s\n"%w
s+= "Log sent: %d Log recv: %d\n"%(sent,recv)
s+= "Act sent: %d Act recv: %d\n"%(sent_a,recv_a)
sent_t=sent+sent_a
recv_t=recv+recv_a
s+= "Sent: %d Recv: %d\n"%(sent_t,recv_t)
mega="%.3f MB\n" % ((sent_t+recv_t)/1024. )
s+= "Total: "+mega
self.l.set_text(s)
self.set_title("T: " +mega)
gobject.timeout_add(timeout_k, self.update)
z=W()
gtk.main()