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跨平台. ...
随机推荐
- [macOS开发.NET Core] 一个简单的WEB程序
上一篇咱们提到了在macOS下选进行开发. 咱们已经把工具准备完成了. 现在咱们做一个简单的DEMO 创建WEB程序  之前咱们已经创建过WEB程序,并且成功的运行过数据 现在咱们创建一个页面,并显 ...
- parsing:NLP之chart parser句法分析器
已迁移到我新博客,阅读体验更佳parsing:NLP之chart parser句法分析器 完整代码实现放在我的github上:click me 一.任务要求 实现一个基于简单英语语法的chart句法分 ...
- Keras Model Sequential模型接口
Sequential 模型 API 在阅读这片文档前,请先阅读 Keras Sequential 模型指引. Sequential 模型方法 compile compile(optimizer, lo ...
- Centos7+LVS-DR+keepalived实验(包含sorry-server、日志、及HTTP-GET的健康检测)
目录检索 一.简介 1.lvs-dr原理请参考原理篇 2.keepalived原理请参考原理篇 3.基于lvs-dr+keepalived故障切换架构图如下: 二.部署 1.环境 2.准备RS的web ...
- java之servlet入门操作教程一
这篇文章主要用来记录,进行servlet开发的一些简单操作步骤,帮助直接上手操作 准备: java环境配置:已配置(javac检验) myeclipse开发环境:已安装 tomcat服务器:已安装(或 ...
- 学习linux笔记(不断更新)
该文章主要记录学习Linux路上的一些命令,备查. 安装Linux系统 平时用的Mac,不想再去安装一遍双系统了,因此直接用docker安装了centos.主要步骤为到docker官网下载Stable ...
- Struts2中五个重要的常量
一.五个常量的位置:位于xwork核心包下的Action字节码文件里 二.五个常量的介绍: a: SUCCESS public static final String SUCCESS = " ...
- 海量数据,大数据处理技术--【Hbase】
- Ajax - Apache安装配置
apache安装配置 1.安装wamp2.配置根路径3.默认的网站根路径是安装目录的www子目录,如果不想使用默认目录,可以自己配置.配置方式如下: --找到文件wamp\bin\apache\Apa ...
- 一起学Android之ProgressBar
本文简述在Android开发中进度条(ProgressBar)的常见应用,仅供学习分享使用. 概述 在Android开发中,进度条的使用场景有很多,如播放电影时可拖动的观看进度条,评分时使用的评分条, ...