共计 3345 个字符,预计需要花费 9 分钟才能阅读完成。
vps必须安装bt6.8以上版本并开启api功能
脚本只在Windows python3.7下测试
代码简陋出现bug概不负责
请自行安装模块和填写个人信息
# -*- coding: utf-8 -*- import requests import time import hashlib import json import smtplib from email.mime.text import MIMEText from email.utils import formataddr my_sender='111@529i.com' # 发件人邮箱账号 my_pass = '11111' # 发件人邮箱密码(当时申请smtp给的口令) my_user='1111@qq.com' # 收件人邮箱账号,我这边发送给自己 url = 'http://1.1.1.1:111' #面板地址 api_sk = '1111111111LCW2zXTB' #(在面板设置页面 - API 接口中获取) cpu_up = '80' #设置cpu占用提醒值根据vps配置填写 mem_up = '900' #设置cpu占用提醒值根据vps配置填写 def getmd5(s): return hashlib.md5(s.encode('utf-8')).hexdigest() #smtp发信 def mail(content): msg=MIMEText(content,'html','utf-8') msg['From']=formataddr(["系统自动发送",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号 msg['To']=formataddr(["收件人昵称",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号 msg['Subject']="bt面板系统占用提醒" # 邮件的主题,也可以说是标题 server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是465 server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码 server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件 server.quit()# 关闭连接 cookies = { 'request_token': getmd5(str(int(time.time())) + getmd5(api_sk)), 'request_time': int(time.time()) } url1=url + '/system?action=GetNetWork' getnetwork = requests.post(url=url1, data=cookies) get_work = json.loads(getnetwork.text) cpu = get_work['cpu'][0] #获取cpu占用 mem = get_work['mem']['memRealUsed'] #获取内存占用 #判断cpu占用 if str(cpu) > cpu_up: ret=mail('<p>' + 'cpu占用大于设定值' + '</p>' + '<p>' + '当前占用:' + str(cpu) + '<p>') print('cpu占用大于设定值') else: pass #判断内存占用 if str(mem) > mem_up: ret=mail('<p>' + 'cpu占用大于设定值' + '</p>' + '<p>' + '当前占用:' + str(mem) + '<p>') print('内存占用大于设定值') else: pass
著作权归作者所有。 商业转载请联系作者获得授权,非商业转载请注明出处。 作者:憶の年 链接:https://www.529i.com/archives/739.html 来源:https://www.529i.com/ # -*- coding: utf-8 -*- import requests import time import hashlib import json import smtplib from email.mime.text import MIMEText from email.utils import formataddr my_sender='111@529i.com' # 发件人邮箱账号 my_pass = '11111' # 发件人邮箱密码(当时申请smtp给的口令) my_user='1111@qq.com' # 收件人邮箱账号,我这边发送给自己 url = 'http://1.1.1.1:111' #面板地址 api_sk = '1111111111LCW2zXTB' #(在面板设置页面 - API 接口中获取) cpu_up = '80' #设置cpu占用提醒值根据vps配置填写(整数) mem_up = '900' #设置cpu占用提醒值根据vps配置填写(整数) def getmd5(s): return hashlib.md5(s.encode('utf-8')).hexdigest() #smtp发信 def mail(content): msg=MIMEText(content,'html','utf-8') msg['From']=formataddr(["系统自动发送",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号 msg['To']=formataddr(["收件人昵称",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号 msg['Subject']="bt面板系统提醒" # 邮件的主题,也可以说是标题 server=smtplib.SMTP_SSL("smtp.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是465 server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码 server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件 server.quit()# 关闭连接 return print("完成发信") cookies = { 'request_token': getmd5(str(int(time.time())) + getmd5(api_sk)), 'request_time': int(time.time()) } #获取cpu内存信息 url1=url + '/system?action=GetNetWork' getnetwork = requests.post(url=url1, data=cookies) get_work = json.loads(getnetwork.text) cpu = get_work['cpu'][0] #获取cpu占用 mem = get_work['mem']['memRealUsed'] #获取内存占用 #判断cpu占用 if str(cpu) > cpu_up: print('cpu占用大于设定值') ret=mail('<p>' + 'cpu占用大于设定值' + '</p>' + '<p>' + '当前占用:' + str(cpu) + '<p>') #判断内存占用 if str(mem) > mem_up: print('内存占用大于设定值') ret=mail('<p>' + 'cpu占用大于设定值' + '</p>' + '<p>' + '当前占用:' + str(mem) + '<p>') #获取版本更新 url2 = url + '/ajax?action=UpdatePanel' UpdatePanel = requests.post(url=url2, data=cookies) panel = json.loads(UpdatePanel.text) status = panel['status'] #判断版本是否更新 if status == True: print ('有更新') version = panel['version'] updateMsg = panel['updateMsg'] ret=mail('<p>' + '版本号:' + (version) + '</p>' + '<p>' + '更新内容:' + '<br>' + (updateMsg) + '</p>')
正文完