Skip to content

Instantly share code, notes, and snippets.

@lucaspg96
Created December 20, 2018 11:02
Show Gist options
  • Save lucaspg96/ec3f8e9a4214e2775a24cdd3a7300eb2 to your computer and use it in GitHub Desktop.
Save lucaspg96/ec3f8e9a4214e2775a24cdd3a7300eb2 to your computer and use it in GitHub Desktop.
from os import system
from pprint import pprint
from telegram import Bot, ParseMode
class Process(dict):
__getattr__ = dict.get
__delattr__ = dict.__delitem__
__setattr__ = dict.__setitem__
def __init__(self,info):
self.update(info)
def __str__(self):
return "CPU: {}%\nMEM: {}%\nUSER: {}"\
.format(self["%CPU"], self["%MEM"], self["USER"])
system("ps aux > processes.txt")
with open("processes.txt") as f:
processes = []
header = f.readline()[:-1].split()
header = header[:-1]
header[-1] += " COMMAND"
for line in f:
values = line.split()
processes.append(Process({
h:values[i] for i,h in enumerate(header)
}))
mem_sorted_processes = sorted(processes, key=lambda p: float(p["%MEM"]), reverse=True)
cpu_sorted_processes = sorted(processes, key=lambda p: float(p["%CPU"]), reverse=True)
total_mem = sum([float(p["%MEM"]) for p in processes])
total_cpu = sum([float(p["%CPU"]) for p in processes])
token = ""
bot = Bot(token=token)
k = 4
if total_cpu > 800:
msg = "<b>AVISO: CPU está ficando sobrecarregada! {0:.2f}% está em uso!</b>".format(total_cpu)
msg += "\nOs {} processos que estão usando mais CPU são:\n\n{}".format(k,"\n---------\n".join([str(p) for p in cpu_sorted_processes[0:k]]))
bot.sendMessage(chat_id="",text=msg, parse_mode=ParseMode.HTML)
if total_mem > 80:
msg = "<b>AVISO: Memória está ficando sobrecarregada! {0:.2f}% está em uso!</b>".format(total_mem)
msg += "\nOs {} processos que estão usando mais Memória são:\n\n{}".format(k,"\n---------\n".join([str(p) for p in mem_sorted_processes[0:k]]))
bot.sendMessage(chat_id="",text=msg, parse_mode=ParseMode.HTML)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment