利用微信及时抢占linux服务器资源(干货)
在linux服务器多用户的情况下,抢占资源比较严重。博主就是在师兄师姐忙着跑毕设实验的空闲时间里去跑自己的实验(夹缝中求生存啊(╥╯^╰╥))。但是这个空隙时间如何能及时的抓住呢?自己就想写一个脚本,来监测资源占用情况,然后来及时通知自己。
##环境 - python(2或3) - wxpy 安装直接用pip install wxpy
代码
import os
from wxpy import *
import time
import datetime
bot = Bot(cache_path="wxpy/wxpy.pkl",console_qr=2, qr_path="wxpy/qr.png")
userlist=['username1',"username2","username3"] #不包括自己的用户名,如果是监测自己的程序,这里换成仅仅包含自己用户名也可
def psloginfo():
pslog = os.popen("ps -eo user,size,time,cmd").read()
pslogs = pslog.split("\n")
title = pslogs[0]
infolist = pslogs[1:]
psinfo = []
for info in infolist:
inf = info.split(" ")
inf = [s for s in inf if s!='']
if len(inf)>=4 and inf[0] in userlist and int(inf[1])>102400: # 大于百兆程序进程
psinfo.append(" ".join(inf))
flag = 0
if len(psinfo)>0:
flag = 1
title = "当前机器占用情况 \n 用户名 内存 时间 命令"
psinfolog = title+"\n"+"\n".join(psinfo)
return psinfolog,flag
def main():
# 设置区
# myself = bot.self # 用自己的微信号给自己发消息
bot.enable_puid('wxpy/wxpy_puid.pkl')
me = bot.friends().search('律己')[0] # 通过微信小号给自己发消息
start_time, end_time = 1,9 # 免打扰时间1-9点
while True:
@bot.register(me, TEXT)
def auto_friends_msg(msg):
if msg.text =="top":
return psloginfo()[0]
else:
return "你好,程序监控机器人为你服务!\n 回复命令:\n top -查看当前机器占用情况\n"
now = datetime.datetime.now()
if start_time > now.hour and now.hour > end_time: # 休息时间
_,flag = psloginfo()
if not flag:
# myself.bot.file_helper.send("有空机器,可以跑程序啦!")
me.send("有空机器,可以跑程序啦!")
time.sleep(60*30)
time.sleep(30)
if __name__=="__main__":
main()
##使用教程
- 代码放到你的linux服务器上,新建wxpy文件(用于缓存文件,二维码等)
- 将你需要监控的账号填到userlist中,在main中设置是由自己的微信号通过文件助手(file_helper)或你的小号给自己发消息.(建议用小号,wxpy是非腾讯官方,存在账号无法登陆微信网页版的风险)
- 用python 命令直接跑起来,就可以了。建议放到后台上跑,否则关闭了终端程序就断了。可以采用screen命令,screen -S wx,screen的具体用法请查看博客
##效果图