psutil监控CPU内存磁盘并告警
#!/usr/bin/env python # coding:utf-8 import psutil import time from Tkinter import * syslist = [] warn = 70 def Sysinfo(): Boot_Start = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(psutil.boot_time())) syslist.append(Boot_Start) time.sleep(0.5) Cpu_usage = psutil.cpu_percent() syslist.append(Cpu_usage) RAM = int(psutil.virtual_memory().total / (1027 * 1024)) syslist.append(RAM) RAM_percent = psutil.virtual_memory().percent syslist.append(RAM_percent) Swap = int(psutil.swap_memory().total / (1027 * 1024)) syslist.append(Swap) Swap_percent = psutil.swap_memory().percent syslist.append(Swap_percent) Net_sent = psutil.net_io_counters().bytes_sent Net_recv = psutil.net_io_counters().bytes_recv Net_spkg = psutil.net_io_counters().packets_sent Net_rpkg = psutil.net_io_counters().packets_recv BFH = r"%" print " 33[1;32m开机时间:%s 33[1;m" % Boot_Start print " 33[1;32m当前CPU使用率:%s%s 33[1;m" % (Cpu_usage, BFH) print " 33[1;32m物理内存:%dM 使用率:%s%s 33[1;m" % (RAM, RAM_percent, BFH) print " 33[1;32mSwap内存:%dM 使用率:%s%s 33[1;m" % (Swap, Swap_percent, BFH) print " 33[1;32m发送:%d Byte 发送包数:%d个 33[1;m" % (Net_sent, Net_spkg) print " 33[1;32m接收:%d Byte 接收包数:%d个 33[1;m" % (Net_recv, Net_rpkg) for i in psutil.disk_partitions(): print " 33[1;32m盘符: %s 挂载点: %s 使用率: %s%s 33[1;m" % (i[0], i[1], psutil.disk_usage(i[1])[3], BFH) def show_reminder(): root = Tk() root.withdraw() screenwidth = root.winfo_screenwidth() screenheight = root.winfo_screenheight() - 100 root.resizable(False, False) root.title("警告!") frame = Frame(root, relief=RIDGE, borderwidth=3) frame.pack(fill=BOTH, expand=1) label = Label(frame, text="CPU,内存,或磁盘超出警戒!", font="Monotype Corsiva -20 bold") label.pack(fill=BOTH, expand=1) button = Button(frame, text="OK", font="Cooper -25 bold", fg="red", command=root.destroy) button.pack(side=BOTTOM) root.update_idletasks() root.deiconify() root.withdraw() root.geometry("%sx%s+%s+%s" % (root.winfo_width() + 20, root.winfo_height() + 20, (screenwidth - root.winfo_width()) / 2, (screenheight - root.winfo_height()) / 2)) root.deiconify() root.lift(aboveThis=None) root.mainloop() if __name__ == "__main__": while True: Sysinfo() sysfile = open("information.txt", "a+") sysfile.write("-----------" + time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) + "----------" + " ") sysfile.write("开机时间:" + syslist[0] + " ") sysfile.write("当前CPU使用率:" + str(syslist[1]) + " ") sysfile.write("物理内存使用率:" + str(syslist[3]) + " ") sysfile.write("Swap内存使用率:" + str(syslist[5]) + " ") for i in psutil.disk_partitions(): sysfile.write("盘符:" + i[0] + "挂载点:" + i[1] + "使用率:" + str(psutil.disk_usage(i[1])[3]) + " ") sysfile.close() if syslist[3] > warn: show_reminder() time.sleep(30)
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。