栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Python监控服务器显卡使用情况程序

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python监控服务器显卡使用情况程序

说明:该程序能够实时监控服务器的显卡运行情况,当达到设定的条件时,会发送邮件进行通知。建议打开微信邮件助手功能,可以实时收到通知信息。
改代码需要发送邮件部分,按要求写入自己的信息即可。

import pynvml
import time
import sys
import smtplib
from email.mime.text import MIMEText
from email.header import Header
pynvml.nvmlInit()

def send_msg(target_add, msg):
  # 发信方的信息:发信邮箱,QQ邮箱授权码
  from_addr = ''
  password = ''
  # 收信方邮箱
  # 发信服务器
  smtp_server = 'smtp.163.com'
  # server = smtplib.SMTP_SSL()
  server=smtplib.SMTP_SSL('smtp.163.com')
  server.connect(smtp_server,465)
  server.login(from_addr, password)
  # 发送邮件
  message = MIMEText(msg, 'plain', 'utf-8')
  server.sendmail(from_addr, target_add, message.as_string())
  # 关闭服务器
  server.quit()
  
  
def watch_nvidia_new(nvidia_ids):
  flag = [1 for i in nvidia_ids]
  free_space_list = [0, 0]

  for i in nvidia_ids:
    handle = pynvml.nvmlDeviceGetHandleByIndex(i)
    meminfo = pynvml.nvmlDeviceGetMemoryInfo(handle)
    free_space = meminfo.free * 1.0 /(1024**3)
    free_space_list[i] = free_space
    print("Card {} free memory is {:2f}GB".format(i,free_space))
  return free_space_list


nvidia_ids = [0,1] # 显卡id

min_memory = 5

while True:
  free_space_list = watch_nvidia_new(nvidia_ids)
  for i in free_space_list:
      if i > min_memory:
            send_msg("目标邮箱","系统检测到有一张显卡空闲{:.2f}GB, 未设置自动启动指令,n".format(i)
                     + "请上线查看原因并重新启动!"
                     +"为防止邮件打扰,本检测程序即将自动停止!")
            print("Send email success!")
            sys.exit(0)
      else:
            print("The graphics card is working normally. The program will retest after 60 seconds!")       
  time.sleep(60)
 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号