Python系统监控脚本

coding

 1import psutil    #载入psutil模块

2import smtplib #载入smtplib模块

3from email.mime.text import MIMEText

4from email.header import Header

5

6def cpu_info(): #定义CPU使用率函数

7 cpu = '%.2f%%'% psutil.cpu_percent(1) #截取1秒内cpu的使用率。

8return cpu

9# %.2f表示输出浮点数并保留两位小数。%%表示直接输出一个%。

10def mem_info(): #定义内存使用率

11 mem = psutil.virtual_memory()

12 mem_per ='%.2f%%'% mem[2]

13 mem_total = str(int(mem[0]/1024/1024)) + 'M'

14 mem_used = str(int(mem[3]/1024/1024)) + 'M'

15 info = {

16'mem_per':mem_per,

17'mem_total':mem_total,

18'mem_used':mem_used

19 } #建立字典,方便后边调用值

20return info

21def disk_info():

22 c = psutil.disk_usage('c:')

23 d = psutil.disk_usage('d:')

24 e = psutil.disk_usage('e:')

25 f = psutil.disk_usage('f:')

26 c_per = '%.2f%%'% c[3]

27 d_per = '%.2f%%'% d[3]

28 e_per = '%.2f%%'% e[3]

29 f_per = '%.2f%%'% f[3]

30 info = {

31'c_per': c_per,

32'd_per': d_per,

33'e_per': e_per,

34'f_per': f_per,

35 }

36return info

37

38def network_info():  

39 network = psutil.net_io_counters()

40 network_sent = str(int(network[0]/1024)) + 'Kb'

41 network_recv = str(int(network[1]/1024)) + 'Kb'

42 info = {

43'network_sent':network_sent,

44'network_recv':network_recv

45 }

46return info

47

48

49def send_mail(message): #定义发邮件函数

50 a = ['1351841****@163.com','1731017****@163.com','1731023****@163.com'] #定义一个列表a为接收方

51 sender = '132079****@qq.com'#发送方

52for i in a:

53 receiver = i

54 subject = '报警'

55 username = '132079****@qq.com'#发送方使用的账户名

56 password = 'ziisvyxvzbeg****'#发送方的授权码密码

57 msg = MIMEText(message, 'plain', 'utf-8')

58 msg['Subject'] = Header(subject, 'utf-8')

59 msg['From'] = sender

60 msg['To'] = receiver

61 smtp = smtplib.SMTP()

62 smtp.connect('smtp.qq.com') #邮件服务器

63 smtp.login(username, password)

64 smtp.sendmail(sender, receiver, msg.as_string())

65 smtp.quit()

66#接收方只有一个用户时,网易、QQ都好使;接收方为多用户时,QQ好使

67

68def main(): #主函数

69 cpu = cpu_info()

70 mem = mem_info()

71 disk = disk_info()

72 network = network_info()

73 info = '''

74 CPU使用率:%s

75 =============

76 内存使用率:%s

77 总内存:%s

78 已使用内存:%s

79 =============

80 C盘使用率:%s

81 D盘使用率:%s

82 E盘使用率:%s

83 F盘使用率:%s

84 =============

85 网卡发送流量:%s

86 网卡接收流量:%s

87

88''' % (cpu,mem.get('mem_per'),mem.get('mem_total'),mem.get('mem_used'),disk.get('c_per'),disk.get('d_per'),disk.get('e_per'),disk.get('f_per'),network.get('network_sent'),network.get('network_resv'))

89

90if int(cpu[:-4]) > 80 or int(mem.get('mem_per')[:-4]) > 60:

91 send_mail(info) #根据需求进行阈值设置

92# print(msg)

93else:

94print('电脑运行良好,没有到阈值')

95

96if__name__ == '__main__':

97 main()

98#当.py文件被直接运行时,if __name__ == '__main__'之下的代码块将被运行;当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行

99

以上是 Python系统监控脚本 的全部内容, 来源链接: utcz.com/z/509941.html

回到顶部