2017-08-05 13:54:53 +03:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
# -*- coding: UTF-8 -*-
|
|
|
|
|
|
|
|
|
|
import time
|
|
|
|
|
from mmgen.common import *
|
|
|
|
|
|
2017-10-01 11:30:11 +03:00
|
|
|
opts_data = lambda: {
|
2017-08-05 13:54:53 +03:00
|
|
|
'desc': 'Bitcoin daemon network rate monitor',
|
|
|
|
|
'usage': '[opts]',
|
|
|
|
|
'options': """
|
|
|
|
|
-h, --help Print this help message
|
|
|
|
|
--, --longhelp Print help message for long options (common options)
|
|
|
|
|
"""
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
cmd_args = opts.init(opts_data)
|
|
|
|
|
|
|
|
|
|
ERASE_LINE,CUR_UP = '\033[K','\033[1A'
|
2017-10-01 11:34:43 +03:00
|
|
|
c = rpc_connection()
|
2017-08-05 13:54:53 +03:00
|
|
|
|
|
|
|
|
def do_loop():
|
|
|
|
|
def get_data():
|
|
|
|
|
d = c.getnettotals()
|
|
|
|
|
return [float(e) for e in (d['totalbytesrecv'],d['totalbytessent'],d['timemillis'])]
|
|
|
|
|
|
|
|
|
|
r,s,t = get_data()
|
|
|
|
|
time.sleep(0.2)
|
|
|
|
|
while True:
|
|
|
|
|
rs,ss,ts = r,s,t
|
|
|
|
|
r,s,t = get_data()
|
|
|
|
|
td = t-ts
|
|
|
|
|
sys.stderr.write('\rrcvd: {:9.2f} kB/s\nsent: {:9.2f} kB/s '.format((r-rs)/td,(s-ss)/td))
|
|
|
|
|
time.sleep(2)
|
|
|
|
|
sys.stderr.write('{}{}{}'.format(ERASE_LINE,CUR_UP,ERASE_LINE))
|
|
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
do_loop()
|
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
|
sys.stderr.write('\n')
|