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跨平台. ...
随机推荐
- 【Android Studio安装部署系列】二十七、Android studio修改项目名称和包名
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 实际项目开发中可能碰到项目名称写错了或者需要修改,而且包名可能也想要修改,那么如何操作呢. 本文是在Android Studio3. ...
- 数据结构系列(2)之 AVL 树
本文将主要讲解平衡二叉树中的 AVL 树,其中将重点讲解二叉树的重平衡方法,即左旋和右旋,以及 3+4 重构:这些方法都是后面要讲的 B 树,红黑树等 BBST 的重要基础:此外在看本文之前最好先看一 ...
- sql的查询语句的总结
一:基本的查询sql 1:基本常用查询 select * from student; --select select all sex from student; --all 查询所有 select d ...
- 三种方法为QLineEdit添加清除内容按钮
很多时候我们会发现输入的一长串内容不得不全部删除重新输入,这时比起一直按着退格键不放一个清除内容按钮更受欢迎. 今天我将介绍三种为QLineEdit添加清除内容按钮的方法,其中两种方法有较强的功能针对 ...
- .NET Framework框架介绍
1.内容 .net framework c#和.net关系 掌握C#中命名空间2..net 就是微软提供的一个开发平台 版本: vs2008 3.5 vs2010 4.0 vs2012 2013 20 ...
- 一看就能学会的H5视频推流方案
本文由云+社区发表 作者:周超 导语 随着直播平台爆发式增长,直播平台从 PC 端转战移动端,紧跟着直播的潮流,自己学习实现了一套简单的 H5 视频推流的解决方案,下面就给小伙伴们分享一下自己学习过程 ...
- 自动化测试 Appium之Python运行环境搭建 Part1
Appium之Python运行环境搭建 Part1 by:授客 QQ:1033553122 实践环境 Win7 Python 3.4.0 JAVA JDK 1.8.0_121 node.js8.11. ...
- Unity 2D 效应器与来回移动的实现
1.效应器 Point Effector 2D: 点效应器.进入区域,吸引或排斥物体 Area Effector 2D: 区域效应器,可以用来做马里奥的管道移动效果 Surface Effector ...
- 深圳市共创力咨询CEO杨学明的最新演讲:互联网模式下的企业创新管理
2018年11月14日, 深圳市共创力咨询董事长.深圳市汇成研发管理咨询公司董事长杨学明先生受邀参加由深圳图书馆主办,深圳手讯视频承办的“倾听行业之声”2018第二届世界CED智慧大会,此次分享的主题 ...
- 随笔:关于去年的WordPress建站的回忆
2018-02-26 建站 2018-02-28 选择主题Clearision 2018-03-01 学习插入视频.修改主题 <iframe src="//playe ...