class_config.py

#!/usr/bin/env python

#coding:utf-8

'''此处定义邮件的相关参数'''

class Mail_conf():

sender = 'fyxichen@126.com'

receiver = 'fyxichen@126.com'

host = 'smtp.126.com'

port = '25'

user = 'fyxichen@126.com'

passwd = '123456'

log_dir = 'sendmail_err_log'

'''此处定义监控程序以及启动路径,启动路径不能包含中文'''

#用法{程序名称:启动口令}

#配置重启日志名称,不能为空。

class ProgramPath():

Path = {'RTX.exe':'/home/admin',

'Foxmail.exe':'D:\Program Files (x86)\jisupdf',

'QQ.exe':'D:\Program Files (x86)\Tencent\QQ\Bin\qq.exe',}

Restart_Log_path = 'Restart_log_path'

SendMail.py

#!/usr/bin/env python

#coding:utf-8

import string,time

import smtplib

from email.mime.text import MIMEText

from email.header import Header

from class_config import Mail_conf

'''发送邮件类'''

def send_mail(Title,context):

msg = MIMEText(context,'plain','utf-8')

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

try:

smtp = smtplib.SMTP()

smtp.connect(Mail_conf.host,Mail_conf.port)

smtp.login(Mail_conf.user, Mail_conf.passwd)

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

smtp.quit()

except Exception,e:

Writelog = open(Mail_conf.log_dir,'ab')

log = '%s-->%s\n' % (time.strftime('%Y-%m-%d %H:%M:%S'),str(e))

print log

Writelog.write(log)

Writelog.close()

if __name__ == "__main__":

send_mail("Test Mail","这是一封测试邮件,更改邮箱配置在class_config.py中配置")

ProcessMoniter.py

#!/usr/bin/env python

#coding:utf-8

import psutil,time

import subprocess

from class_config import ProgramPath

def monitor():

Time = time.time()

log = open(ProgramPath.Restart_Log_path,'ab+')

log.write('****************%s****************\n' % time.strftime('%Y-%m-%d %H:%M:%S'))

log.close()

while True:

ProcessName = ProgramPath.Path.keys()

Process = psutil.process_iter()

for i in Process:

try:

if i.name() in ProcessName:

ProcessName.remove(i.name())

except Exception,e:

pass

for i in ProcessName:

try:

Restart = subprocess.Popen(ProgramPath.Path[i],shell=False)

except Exception,e:

err_log = '%s-->%s\n' % (time.strftime('%Y-%m-%d %H:%M:%S'),str(e).strip())

log = open(ProgramPath.Restart_Log_path,'ab+')

log.seek(-(len(str(e))),2)

if log.readline().strip() == str(e).strip():

if Time + 60 > time.time():

pass

else:

log.seek(0,2)

log.write(err_log)

log.close()

Time = time.time()

else:

log.seek(0,2)

log.write(err_log)

log.close()

Time = time.time()

time.sleep(2)

if __name__ == "__main__":

monitor()

Net_io.py

#!/usr/bin/env python

#coding:utf-8

import psutil

import time

import sys

from optparse import OptionParser

parser = OptionParser()

parser.add_option("-t", "--time", dest="time",

help="此参数可查看当前下载占的带宽,-t是测试时间", metavar="10")

def Net_io(s):

x = 0

sum = 0

while True:

if x >= s:

break

r1 = psutil.net_io_counters().bytes_recv

time.sleep(1)

r2 = psutil.net_io_counters().bytes_recv

y = r2 - r1

print "%.2f Kb/s" % (y / 1024.0)

sum += y

x += 1

result = sum / x

print "\033[1;32m %s秒内平均速度:%.2f Kb/s \033[1;m" % (x,result / 1024.0)

if __name__ == "__main__":

(options, args) = parser.parse_args()

if options.time:

Net_io(options.time)

else:

Net_io(10)

sysinfo.py

#!/usr/bin/env python

#coding:utf-8

import psutil

import time

import sys

def Sysinfo():

Boot_Start = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(psutil.boot_time()))

time.sleep(0.5)

Cpu_usage = psutil.cpu_percent()

RAM = int(psutil.virtual_memory().total/(1027*1024))

RAM_percent = psutil.virtual_memory().percent

Swap = int(psutil.swap_memory().total/(1027*1024))

Swap_percent = psutil.swap_memory().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

if __name__ == "__main__":

BFH = r'%'

print " \033[1;32m开机时间:%s\033[1;m" % Boot_Start

print " \033[1;32m当前CPU使用率:%s%s\033[1;m" % (Cpu_usage,BFH)

print " \033[1;32m物理内存:%dM\t使用率:%s%s\033[1;m" % (RAM,RAM_percent,BFH)

print "\033[1;32mSwap内存:%dM\t使用率:%s%s\033[1;m" % (Swap,Swap_percent,BFH)

print " \033[1;32m发送:%d Byte\t发送包数:%d个\033[1;m" % (Net_sent,Net_spkg)

print " \033[1;32m接收:%d Byte\t接收包数:%d个\033[1;m" % (Net_recv,Net_rpkg)

for i in psutil.disk_partitions():

print " \033[1;32m盘符: %s 挂载点: %s 使用率: %s%s\033[1;m" % (i[0],i[1],psutil.disk_usage(i[1])[3],BFH)

else:

File = open("sysinfo.log","ab+")

File.write("CPU:%s \tRAM:%s\tNet_recv:%d\tNet_sent:%d\r\n" % (Cpu_usage,RAM_percent,Net_recv,Net_sent))

File.flush()

File.close()

if __name__ == "__main__":

Sysinfo()

主程序就不写了,大家自己看情况用就好了,好久没写过python了写的不好大家见谅

都是一个功能一个文件,直接运行也可以组织起来调用

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点!

本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

python监控进程脚本_进程监控的python脚本相关推荐

  1. jmeter脚本_性能工具之Jmeter脚本python启动

    背景 上一节是shell命令启动Jmeter,担心大家对shell脚本语法不是很熟悉,如果定制自己想要的恐怕不好弄,这次改用python启动脚本,在改造之前大家先了解下Jmeter线程组相关参数,这样 ...

  2. go调用python脚本_谁能取代Python?我使用Go来部署机器学习模型的原因

    全文共1881字,预计学习时长7分钟 图源:unsplash 毋庸置疑,Python是如今最受欢迎的机器学习语言.虽然机器学习框架使用CUDA C / C ++之类的语言进行实际运算,但它们都提供了P ...

  3. java执行python脚本_通过Java调用Python脚本

    在进行开发的过程中,偶尔会遇到需要使用Java调用Python脚本的时候,毕竟Python在诸如爬虫,以及科学计算等方面具有天然的优势.最近在工作中遇到需要在Java程序中调用已经写好的Python程 ...

  4. python游戏开发步骤_【原创】python制作游戏脚本之网游寻址及64位程序的模块遍历(视频已安排)...

    本帖最后由 公孙秒秒 于 2019-4-2 18:11 编辑 前言 ------------------------------------------------- 这篇教程旨在网游的基址查找和如何 ...

  5. python调用ping命令_我可以创建一个脚本来测试是否可以在python服务器上远程使用SSH和PING命令吗? - python...

    我可以创建脚本来测试是否可以在python中远程使用服务器上的SSH和PING命令吗? 参考方案 好的,这是Python3和Linux的示例.只需记住,您的目标主机/服务器必须正在运行SSH服务器才能 ...

  6. python游戏按键无效_瞬速掌握Python系统管理-调试和分析脚本1-debugging

    调试和分析在Python开发中发挥着重要作用. 调试器可帮助程序员分析完整的代码. 调试器设置断点,而剖析器运行我们的代码,并给我们执行时间的详细信息. 分析器将识别程序中的瓶颈.我们将了解pdb P ...

  7. 用python实现ai围棋_围棋AI.Leela+Python脚本分析棋谱

    完成了Sabaki+LeelaSabaki+Leela GTP搭建完美围棋AI平台后,在"飞扬围棋论坛"看到有棋友介绍用Leela+Python脚本分析棋谱,于是也试了一下. 软件 ...

  8. 用python刷微信阅读_老司机用python脚本刷微信读书的时长

    微信读书有一个鼓励机制, 一周阅读5小时可兑换10书币,每周日晚清空一周的总读书时长,没兑换的时长不计入下一周(1书币 == 1块钱) 作为一个经常加班的程序猿, 一周刷5个小时, 有点困难, 所以只 ...

  9. python制作浏览器插件_分享一个火车浏览器脚本插件python中文分词

    最近在采集一批信息,发现火车浏览器的自带分词插件,分词效果不是很理想,在网上找了一个API分词接口:pullword 其实对于火车浏览器脚本插件用PHP和python都可以写,之前做了一个PHP分词插 ...

  10. python新版下载安装_各种版本的Python下载安装教程

    python从17年开始大火,自然想学python的同学就多了,小编整理了这篇文章,从python的功能介绍.各系统最新版本python下载.python全部版本下载.python下载后安装教程以及p ...

最新文章

  1. vue weex 调用原生toast_vue-template-compiler 还能这么用
  2. Windows PE导出表编程3(暴力覆盖导出函数)
  3. Gym 100431E Word Cover 题解:KMP上跑dp
  4. html文本可选择,如何用javascript选择html文本?
  5. 如何Exchange移动数据库文件(一)
  6. 函数sprintf真好用
  7. 【算法系列之一】二叉树最小深度
  8. HDU 5392 BC #51
  9. 2021.08.26学习内容 Win10+GeForce GTX1650安装NVIDIA显卡驱动及CUDA11.4+cuDNN8.2
  10. android - 调用系统分享功能分享图片
  11. 利用BI进行报表分析(二)--SSAS多维数据集以及维度的建立
  12. 四、物理优化(6)数据库引擎优化顾问
  13. ubuntu下sudo:add-apt-repository:command not found 问题
  14. 2018acm编程大赛题目c语言,编程竞赛题(超牛题目,留下做研究).doc
  15. 用C语言编写大写字母用ascll表示,用java实现输入ASCII码,打印出对应的大写字母。...
  16. PL3376C-ASEMI恒压原边控制PL3376C
  17. uni-app 使用蓝牙打印机ESC/POS指令基础方法
  18. mysql拼音码自动生成_根据中文名,自动生成首字母的拼音码或拼音码(两种方法)...
  19. UE4UE5 VR开发多人联机RPC的坑
  20. 地球人都在玩跨境电商

热门文章

  1. 华为存储更换故障硬盘
  2. 010Editor的Template安装与使用
  3. CAN资料整理(二):CAN协议帧格式
  4. JavaWeb学习笔记4
  5. 直播平台软件开发的全流程探索
  6. h5 api-获得地理经纬度和异常处理
  7. (PKCS1) RSA 公私钥 pem 文件解析
  8. 自定义下拉框样式兼容IE8
  9. 获取抖音无水印视频地址
  10. itchat获取群聊用户的信息