栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

用python脚本实现磁盘容量监控

Python 更新时间:发布时间: 百科书网 趣学号
前言

最近学习了Python,试图将其融入日常的工作中,先从一些简单的小案例开始实验吧,在实例中去提升和探究更复杂的使用方法。

需求

例如,目前有一个nfs挂载出来的路径/scratch01,我们需要监控它的使用量不超过90%。如果超过,提出警告,并且进入该路径中,找出使用量最大的文件夹,一起输出。

第一步

判断指定路径当前使用量,(linux中使用 df -h可以看到的Size Used Avail Use%等信息),如果超过规定百分比,则输出日志/告警。

import os
import sys
import signal
import logging

def SpaceMonitor(path):
    '''
    This alarm is generated when the disk usage exceeds 90%
    :return:
    '''
    try:
        st = os.statvfs(path)
        total = st.f_blocks * st.f_frsize
        # 文件系统数据块总数 * 分栈大小
        used = (st.f_blocks - st.f_bfree) * st.f_frsize
        # (文件系统数据块总数 - 可用块数)* 分栈大小
        logging.basicConfig(filename='example.log', format='%(asctime)s:%(levelname)s:%(message)s', level=logging.DEBUG)
        logging.info('Start')
    except FileNotFoundError:
        print('File path Not Found Error')
        logging.error('File path Not Found Error')

    if used / total > 0.5 :
    	# 这里设定50%为了测试,成功后可更改为80%、90%
        print('No enough space')
        logging.debug('No enough space!')

    logging.info('Finished')

path = '/scratch01'
SpaceMonitor(path)

以上实现了对指定路径信息的读取和判断
涉及模块os、模块logging
1、os.statvfs([path])方法,详细参考:https://www.runoob.com/python/os-statvfs.html

2、logging.basicConfig(filename=‘example.log’, format=’%(asctime)s:%(levelname)s:%(message)s’, level=logging.DEBUG)
指定日志输出文件,文件格式,及输出的level,debug即所有的信息都输入进去

后续内容,我测试后更新啦~
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273075.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号