python3实现磁盘空间监控


Posted in Python onJune 21, 2018

本文实例为大家分享了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二分查找详解
Sep 13 Python
Python实现的计数排序算法示例
Nov 29 Python
python中找出numpy array数组的最值及其索引方法
Apr 17 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
Python3.5集合及其常见运算实例详解
May 01 Python
python交易记录整合交易类详解
Jul 03 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
Python函数__new__及__init__作用及区别解析
Aug 31 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
用Python可视化新冠疫情数据
Jan 18 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 Python
python 使用pandas读取csv文件的方法
Dec 24 Python
Python实现的远程登录windows系统功能示例
Jun 21 #Python
python3监控CentOS磁盘空间脚本
Jun 21 #Python
python实现猜单词小游戏
May 22 #Python
python2.x实现人民币转大写人民币
Jun 20 #Python
python实现猜数字小游戏
Mar 24 #Python
python实现人民币大写转换
Jun 20 #Python
python人民币小写转大写辅助工具
Jun 20 #Python
You might like
php session应用实例 登录验证
2009/03/16 PHP
php中防止SQL注入的最佳解决方法
2013/04/25 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
php使用Swoole实现毫秒级定时任务的方法
2020/09/04 PHP
Jquery下的26个实用小技巧(jQuery tips, tricks & solutions)
2010/03/01 Javascript
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
jquery获取radio值实例
2014/10/16 Javascript
前端必备神器 Snap.svg 弹动效果
2014/11/10 Javascript
Jquery日期选择datepicker插件用法实例分析
2015/06/08 Javascript
微信小程序登录态控制深入分析
2017/04/12 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
elementui更改el-dialog关闭按钮的图标d的示例代码
2020/08/04 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
vue中是怎样监听数组变化的
2020/10/24 Javascript
python实现图片变亮或者变暗的方法
2015/06/01 Python
浅谈Python的list中的选取范围
2018/11/12 Python
用Python将结果保存为xlsx的方法
2019/01/28 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
Python 实现敏感目录扫描的示例代码
2020/05/21 Python
Python常用库Numpy进行矩阵运算详解
2020/07/21 Python
用html5绘制折线图的实例代码
2016/03/25 HTML / CSS
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
为什么UNION ALL比UNION快
2016/03/17 面试题
《风娃娃》教学反思
2014/04/19 职场文书
小学生优秀评语大全
2014/04/22 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
技术转让协议书
2016/03/19 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js
进行数据处理的6个 Python 代码块分享
2022/04/06 Python