Ce que j'aime pas trop c'est que le -h produit les résultats sous la forme décimal.
#!/usr/bin/python3
import sys
import os
try:
iface = sys.argv[1]
except IndexError:
print("usage: {} <interface>".format(sys.argv[0]))
exit(1)
path = "/sys/class/net/{}/statistics/".format(iface)
if not os.path.exists(path):
print("Interface {} does not exist.".format(iface))
exit(1)
with open(path + "rx_bytes") as rx:
rx_bytes = int(rx.read()[:-1])
with open(path + "tx_bytes") as tx:
tx_bytes = int(tx.read()[:-1])
rx_g = round(rx_bytes/1073741824, 2)
rx_t = round(rx_bytes/1099511627776, 2)
tx_g = round(tx_bytes/1073741824, 2)
tx_t = round(tx_bytes/1099511627776, 2)
print(
"RX: {:.2f} GiB / {:.2f} TiB\n"
"TX: {:.2f} GiB / {:.2f} TiB".format(rx_g, rx_t, tx_g, tx_t)
)
$ ./ifacestats.py eth0
RX: 10106.64 GiB / 9.87 TiB
TX: 148699.09 GiB / 145.21 TiB