zoukankan      html  css  js  c++  java
  • 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()
    

      

  • 相关阅读:
    User Get 'Access Denied' with Excel Service WebPart
    How To Search and Restore files from Site Collection Recycle Bin
    How To Collect ULS Log from SharePoint Farm
    How To Restart timer service on all servers in farm
    How to Operate SharePoint User Alerts with PowerShell
    How to get Timer Job History
    Synchronization Service Manager
    SharePoint 2007 Full Text Searching PowerShell and CS file content with SharePoint Search
    0x80040E14 Caused by Max Url Length bug
    SharePoint 2007 User Re-created in AD with new SID issue on MySite
  • 原文地址:https://www.cnblogs.com/InformationGod/p/10697382.html
Copyright © 2011-2022 走看看