复制代码 代码如下:
#!/usr/bin/env python
import sys,time
from socket import socket
def read_interface(in_file):
    with file(in_file) as f:
        return f.readlines()[2:]
def set_interface(inter_msg):
    dic={}
    for i in xrange(len(inter_msg)):
        dic[inter_msg[i].split(\”:\”)[0].strip()]={\”in\”:inter_msg[i].split(\”:\”)[1].strip().split()[0],\”out\”:inter_msg[i].split(\”:\”)[1].strip().split()[8]}
    return dic
CARBON_SERVER = \’127.0.0.1\’
CARBON_PORT = 2003
delay = 3
sock = socket()
try:
    sock.connect( (CARBON_SERVER,CARBON_PORT) )
except:
    print \”Couldn\’t connect to %(server)s on port %(port)d, is carbon-agent.py running?\” % { \’server\’:CARBON_SERVER, \’port\’:CARBON_PORT }
    sys.exit(1)
while True:
    now = int( time.time() )
    lines=[]
    int1=read_interface(\”/proc/net/dev\”)
    inter_dic1=set_interface(int1)
    time.sleep(1)
    int2=read_interface(\”/proc/net/dev\”)
    inter_dic2=set_interface(int2)
    print int(inter_dic2[inter_dic2.keys()[1]][\”in\”]),int(inter_dic1[inter_dic1.keys()[1]][\”in\”])
    for i in xrange(len(inter_dic1.keys())):
        lines.append(\”interface.%s_in %s %d\” % (inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]][\”in\”])-int(inter_dic1[inter_dic1.keys()[i]][\”in\”]),now))
        lines.append(\”interface.%s_out %s %d\” % (inter_dic1.keys()[i],int(inter_dic2[inter_dic2.keys()[i]][\”out\”])-int(inter_dic1[inter_dic1.keys()[i]][\”out\”]),now))
    message = \’\\n\’.join(lines) + \’\\n\’
    print \”sending message\\n\”
    print \’-\’ * 80
    print message
    sock.sendall(message)
    time.sleep(delay)