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 文件操作实现代码
Oct 07 Python
Python中字典(dict)和列表(list)的排序方法实例
Jun 16 Python
python获取当前用户的主目录路径方法(推荐)
Jan 12 Python
python通过socket实现多个连接并实现ssh功能详解
Nov 08 Python
python利用高阶函数实现剪枝函数
Mar 20 Python
Python带动态参数功能的sqlite工具类
May 26 Python
在pycharm中设置显示行数的方法
Jan 16 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
python实现简单的井字棋游戏(gui界面)
Jan 22 Python
python 字典和列表嵌套用法详解
Jun 29 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相当简单的分页类
2008/10/02 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
PHP类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
CSS+Table图文混排中实现文本自适应图片宽度(超简单+跨所有浏览器)
2009/02/14 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
JavaScript判断变量是否为undefined的两种写法区别
2013/12/04 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
JS实现的页面自定义滚动条效果
2015/10/26 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
原生JavaScrpit中异步请求Ajax实现方法
2017/11/03 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
微信小程序中显示倒计时代码实例
2019/05/09 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
React实现评论的添加和删除
2020/10/20 Javascript
Python sys.path详细介绍
2013/10/17 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
对numpy中array和asarray的区别详解
2018/04/17 Python
Python获取、格式化当前时间日期的方法
2020/02/10 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
HTML5实现锚点时请使用id取代name
2013/09/06 HTML / CSS
出纳岗位职责模板
2013/11/27 职场文书
绩效专员岗位职责
2013/12/02 职场文书
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
教师现实表现材料
2014/02/14 职场文书
《海底世界》教学反思
2014/04/16 职场文书
贸易跟单员英文求职信
2014/04/19 职场文书
我的老师教学反思
2014/05/01 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书