脚本环境

kill自己换命令 先安装 python

1
2
3
4
yum install -y epel-release
yum install -y vnstat
service vnstat start
chkconfig vnstat on

脚本 xxx.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#coding=utf-8

limit_total=0# limit_total 上传+下载的流量限制,单位GB,如果不限制就是0,如果限制1T就是1024
limit_in=0# limit_in 下载的流量限制,单位GB,如果不限制就是0,如果限制1T就是1024
limit_out=0# limit_out 上传的流量限制,单位GB,如果不限制就是0,如果限制1T就是1024
sleep=60#多久检查一次,单位是秒

import os
import time
NET_IN = 0
NET_OUT = 0

while True:
vnstat=os.popen('vnstat --dumpdb').readlines()
for line in vnstat:
if line[0:4] == m;0;:
mdata=line.split(;)
NET_IN=int(mdata[3])/1024
NET_OUT=int(mdata[4])/1024
break

# kill=这里写你要执行的命令
kill=poweroff
if (limit_total != 0 and (NET_IN+NET_OUT)>=limit_total):
os.system(kill)
break
elif (limit_in != 0 and NET_IN>=limit_in):
os.system(kill)
break
elif (limit_out != 0 and NET_OUT>=limit_out):
os.system(kill)
break

time.sleep(sleep)

运行

1
nohup python xxx.py &