python监控机器(第1版)
# coding:utf-8
import configparser
import logging
import os
import psutil
import ctypes
import platform
import schedule
import time # 配置日志
def configLog():
logging.basicConfig(level=logging.INFO, # 控制台打印的日志级别
filename='monitor.log',
filemode='a', ##模式,有w和a,w就是写模式,每次都会重新写日志,覆盖之前的日志
# a是追加模式,默认如果不写的话,就是追加模式
format=
'%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
# 日志格式
) # 初始化配置参数
def init():
configLog()
cf = configparser.ConfigParser()
cf.read("config.ini","UTF-8")
secs = cf.sections()
print(cf.get("backupFiles","valve")) # 备份文件监控任务
def backupFilesMonitorJob(dir,files):
for x in files:
if not os.path.exists(dir+x):
print("日常备份文件%s%s还未备份"%(dir,x)) # 核心文件监控任务
def coreFilesMonitorJob(dir,files):
for x in files:
if not os.path.exists(dir+x):
print("core文件%s%s还未备份"%(dir,x)) # 数据库备份文件监控任务
def databaseBackupMonitorJob(dir,files):
for x in files:
if not os.path.exists(dir+x):
print("core文件%s%s还未备份"%(dir,x)) # 进程监控任务
def processMonitorJob(processNames):
for x in processNames:
for p in psutil.process_iter():
if p.name() == x:
print("进程状态",p.name)
break; # 磁盘监控任务
def diskCapacityMonitorJob(folder):
freeSpace = 0
if platform.system() == 'Windows':
free_bytes = ctypes.c_ulonglong(0)
ctypes.windll.kernel32.GetDiskFreeSpaceExW(ctypes.c_wchar_p(folder), None, None, ctypes.pointer(free_bytes))
freeSpace = free_bytes.value/1024/1024/1024
else:
st = os.statvfs(folder)
freeSpace = st.f_bavail * st.f_frsize/1024/1024
# print(freeSpace,"GB")
if freeSpace <= 50:
print("警告,磁盘空间不足50GB,当前仅剩%i GB,[当前时间:%s]"%(freeSpace,time.strftime('%Y.%m.%d %H:%M:%S',time.localtime(time.time())))) schedule.every(3).seconds.do(processMonitorJob,processNames = ['QQ.exe','chrome.exe'])
schedule.every(10).seconds.do(diskCapacityMonitorJob,"C:\\")
schedule.every(10).seconds.do(backupFilesMonitorJob,"C:\\",["demo.txt","demo2.txt"])
schedule.every(10).seconds.do(coreFilesMonitorJob,"C:\\",["demoa.txt","demob.txt"])
schedule.every(10).seconds.do(databaseBackupMonitorJob,"C:\\",["data1.txt","data2.txt"]) if __name__ == "__main__":
while True:
schedule.run_pending()
python监控机器(第1版)的更多相关文章
- python监控端口脚本[jkport2.0.py]
#!/usr/bin/env python #!coding=utf-8 import os import time import sys import smtplib from email.mime ...
- python之环境搭建windows版
1.先到python官网下载属于自己的的python版本,有linux版,有mac版,有windows版:https://www.python.org/downloads/windows/ 2.下载完 ...
- Python监控网站接口值
Python监控网站接口值: #!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'liudong' import urllib,sy ...
- Python 监控nginx服务是否正常
Python 监控nginx服务是否正常 #!/usr/bin/env python import os, sys, time from time import strftime while True ...
- [原创] zabbix学习之旅七:如何远程操作被监控机器
虽然我们已经创建了一个报警系统,但在实际场景中,运维人员从得到报警到实际解决问题有一定的时差,若业务系统没有做高可用,那业务不得不中断,对于某些要求严格的企业级环境,这是不可容忍的,那有没有方法能让z ...
- 《python参考手册(第四版)》【PDF】下载
<python参考手册(第四版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382222 内容介绍 本书是权威的Python语 ...
- 《利用Python进行数据分析·第2版》
<利用Python进行数据分析·第2版> 第 1 章 准备工作第 2 章 Python 语法基础,IPython 和 Jupyter第 3 章 Python 的数据结构.函数和文件第 4 ...
- Python基础教程-第3版(文字版) 超清文字-非扫描版 [免积分、免登录]
此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Python基础教程-第3版 备用下载:Python基础教程-第3版
- Python监控文件变化:watchdog
Python监控文件变化有两种库:pyinotify和watchdog.pyinotify依赖于Linux平台的inotify,后者则对不同平台的的事件都进行了封装.也就是说,watchdog跨平台. ...
随机推荐
- 全内存的redis用习惯了?那能突破内存限制类redis产品ssdb呢?
首先说一下背景,在双十一的时候,我们系统接受X宝的订单推送,同事原先的实现方式是使用redis的List作为推送数据的承载,在非大促的场景下, 一切运行正常,内存占用大概3-4G,机器是16G内存.由 ...
- 能够玩转BKY皮肤的 geek,有一半最后都成为了前端大师
By Conmajia March 9, 2018 剩下的那一半全部扑街了. 世纪之初,BKY那些花里胡哨的预设皮肤曾经让初识网络的懵懂学子雀跃不已. 然而以现在的审美眼光看来,这些带着一股子扑面而来 ...
- 基于“formData批量上传的多种实现” 的多图片预览、上传的多种实现
前言 图片上传是web项目常见的需求,我基于之前的博客的代码(请戳:formData批量上传的多种实现)里的第三种方法实现多图片的预览.上传,并且支持三种方式添加图片到上传列表:选择图片.复制粘贴图片 ...
- 如果你也打算学习 Spring Cloud
说到 Spring Cloud,那肯定要少不了提一下微服务框架,所谓的微服务框架就是把负责的功能拆分成比较小.功能比较单一的服务独立处理,例如单点登录服务.支付服务.订单服务等,当然如果订单功能比较复 ...
- Dubbo和Spring Cloud微服务架构'
微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业 ...
- maven的项目目录解析
target文件夹用于存放项目编译后产生的class文件.
- vue+element-ui实现行数可控的表格输入
element的table中使用 <template slot-scope="scope"> </template> 包裹想要插入的input,或者sele ...
- 二、Snapman多人协作电子表格之——软件下载安装与配置
Snapman多人协作电子表格是一个即时工作系统. 一.软件下载地址 Snapman下载的官网地址:http://www.snapman.xyz 在官网下载Snapman主程序安装: snapman_ ...
- Centos6搭建vsftpd
CentOS 6.5下安装Vsftp,虚拟用户一.安装:1.安装Vsftpd服务相关部件:[root@localhost ~]# yum install vsftpd*Loaded plugins: ...
- 查看CPU使用率
rem 如果wmi服务(服务名为Winmgmt)坏掉了,需要到system32\webm目录下执行如下注释的命令 rem for %i in (*.dll) do RegSvr32 -s %i rem ...