Amazing-Python-Scripts
59 строк · 1.5 Кб
1# Contributed via : https://github.com/adarshkushwah/Network-Usage-Tracker
2
3import os4import sys5import time6import threading7import subprocess8import tkinter9import tkinter.messagebox10
11
12def monitor(limit, unit):13check = "vnstat"14proc = subprocess.Popen(check, shell=True, stdout=subprocess.PIPE)15output = proc.communicate()16output = str(output)17# print output18l = []19for t in output.split():20try:21if t == "MiB" or t == "GiB":22l.append(t)23else:24l.append(float(t))25except ValueError:26pass27
28if unit == l[5] and limit < l[4]:29print("\nnetwork usage limit exceeded!\n")30top = tkinter.Tk()31
32def hello():33tkinter.messagebox.showinfo("Warning!",34"Network usage limit exceeded!!!!")35
36B1 = tkinter.Button(top, text="Warning", command=hello)37B1.pack()38top.mainloop()39arg = [limit, unit]40threading.Timer(60.0, monitor, arg).start()41
42
43def main():44if len(sys.argv) > 3 or len(sys.argv) < 3:45print(46'command usage: python3 bandwidth_py3.py <data usage in MiB or GiB>'47)48print('example: python3 bandwidth_py3.py 500 MiB')49print('or python3 bandwidth_py3.py 2 GiB')50exit(1)51else:52limit = float(sys.argv[1])53unit = str(sys.argv[2])54# callMonitor(limit, unit)55monitor(limit, unit)56
57
58if __name__ == "__main__":59main()60