Поскольку у меня лимитный интернет (предоплачено 500 мб в месяц, а платить больше абонентской платы не хочется), я решил написать на Python небольшую программу (не хочется скриптом называть, но по сути это скрипт. даже интерфейса нету) - демон, который висит в фоне и снимает показания счетчика. Не воды, а трафика. Когда достигнут лимит - предупреждает и отключает. Писал для себя, но решил выложить:
import commands, sys, time
device = 'ppp0' #network device. usually eth0 for ethernet, wlan0 for wifi, ppp0 for cdma/gsm
mb = 5 #allowed megabytes

def check(interface):
    pepyaka = open('/sys/class/net/' + device + '/statistics/rx_bytes', 'r')
    kb = int(pepyaka.read())/1024
    pepyaka.close()
    return kb

def fileupdate():
    f = open('spam', 'w')
    f.write(str(check(device)))
    f.close()

def fileread():
    f = open('spam', 'r')
    val = f.read()
    f.close()
    return val

while 1:
    fileupdate()
    foo = fileread()
    if int(foo) > 1024*mb:
        import dbus
        bus = dbus.SessionBus()
        proxy = bus.get_object('org.freedesktop.Notifications', '/org/freedesktop/Notifications')
        _dbus_notify = dbus.Interface(proxy, 'org.freedesktop.Notifications')
        commands.getoutput('/sbin/ifconfig ' + device + ' down')
        _dbus_notify.Notify('', 0, '', 'Stop!', 'Stop surfing internet. You are disconnected.', [], {'x': '0', 'y': '0'}, 5000)
        sys.exit(1)
    time.sleep(1)
P.S. Да, я сначала написал на Welinux, там получил несколько советов, улучшил приложение и получилось вот это.
Постовой: Почитай рассказ Зайди на dshdsh.ru Узнай о том, как работаютExt4 и Arch Linux
2009-06-06 21:32:08 Теги: python traffic linux