python3实现磁盘空间监控

 更新时间:2018年06月21日 08:55:09   作者:djstavaV  
这篇文章主要为大家详细介绍了python3实现磁盘空间监控,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python3磁盘空间监控的具体代码,供大家参考,具体内容如下

软硬件环境

python3
apscheduler

前言

在做频繁操作磁盘的python项目时,经常会碰到磁盘空间不足的情况,这个时候,工程应该要有自己的处理模块,当磁盘利用率到达某个点时,发出警告并停止程序的运行。本文就利用Python3中的apscheduler模块来处理这样的问题。

代码实践

import os
import sys
import signal
import logging

from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.interval import IntervalTrigger

# 开启磁盘空间检测
sched = BackgroundScheduler()

# 间隔5分钟开启一个检查
intervalTrigger = IntervalTrigger(minutes=5)

# 给检查任务设个id,方便任务的取消
sched.add_job(spaceMonitorJob, trigger=intervalTrigger, id='id_space_monitor')
sched.start()

# 禁止apscheduler相关信息屏幕输出
logging.getLogger('apscheduler.executors.default').propagate = False

方法spaceMonitorJob代码如下

def spaceMonitorJob():
 '''
 当磁盘(切片存储的目录)利用率超过90%,程序退出
 :return:
 '''

 try:
  st = os.statvfs('/')
  total = st.f_blocks * st.f_frsize
  used = (st.f_blocks - st.f_bfree) * st.f_frsize
 except FileNotFoundError:
  print('check webroot space error.')
  logger.error('check webroot space error.')

  # 移除任务,病关闭sched任务
  sched.remove_job(job_id='id_space_monitor')
  sched.shutdown(wait=False)
  sys.exit(-3)

 if used / total > 0.9:
  print('No enough space.')
  logger.debug('No enough space.')
  sched.remove_job(job_id='id_space_monitor')
  sched.shutdown(wait=False)

  # 杀掉进程
  os.killpg(os.getpgid(os.getpid()), signal.SIGKILL)

  # 退出
  exit(-3)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python:列表详解

    python:列表详解

    这篇文章主要介绍了Python中列表(List)的详解操作方法,包含创建、访问、更新、删除、其它操作等,需要的朋友可以参考下
    2021-10-10
  • 详解在OpenCV中实现的图像标注技术

    详解在OpenCV中实现的图像标注技术

    图像标注在计算机视觉中很重要,计算机视觉是一种技术,它允许计算机从数字图像或视频中获得高水平的理解力,并以人类的方式观察和解释视觉信息,本文将重点讨论在OpenCV的帮助下创建这些注释,感兴趣的朋友一起看看吧
    2022-06-06
  • Python并发:多线程与多进程的详解

    Python并发:多线程与多进程的详解

    今天小编就为大家分享一篇关于Python并发:多线程与多进程的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • python使用多线程编写tcp客户端程序

    python使用多线程编写tcp客户端程序

    这篇文章主要为大家详细介绍了python使用多线程编写tcp客户端程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • 详解Python装饰器由浅入深

    详解Python装饰器由浅入深

    装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码。本文尽量描述得浅显易懂,从最基础的内容讲起。
    2016-12-12
  • python:HDF和CSV存储优劣对比分析

    python:HDF和CSV存储优劣对比分析

    这篇文章主要介绍了python:HDF和CSV存储优劣对比分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 详解python架构 PyNeuraLogic超越Transformers

    详解python架构 PyNeuraLogic超越Transformers

    这篇文章主要为大家介绍了python使用 PyNeuraLogic超越Transformers示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 基于python实现智能用例生成工具

    基于python实现智能用例生成工具

    这篇文章主要为大家详细介绍了如何基于python实现智能用例生成工具,即根据输入的功能点,生成通用测试点,感兴趣的小伙伴可以跟随小编一起了解下
    2023-09-09
  • Flask数据库迁移简单介绍

    Flask数据库迁移简单介绍

    这篇文章主要为大家详细介绍了Flask数据库迁移简单工作,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Python中异常处理及最佳实践举例详解

    Python中异常处理及最佳实践举例详解

    异常处理在任何一门编程语言里都是值得关注的一个话题,良好的异常处理可以让你的程序更加健壮,下面这篇文章主要给大家介绍了关于Python中异常处理及最佳实践的相关资料,需要的朋友可以参考下
    2024-03-03

最新评论