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实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
Python使用QQ邮箱发送Email的方法实例
Feb 09 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
python梯度下降法的简单示例
Aug 31 Python
Python正则表达式匹配日期与时间的方法
Jul 07 Python
详解Python3 pandas.merge用法
Sep 05 Python
Python实现线性判别分析(LDA)的MATLAB方式
Dec 09 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
520使用Python实现“我爱你”表白
May 20 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
PHP多维数组排序array详解
2017/11/21 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
权威JavaScript 中的内存泄露模式
2007/08/13 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
2012/09/19 Javascript
JavaScript打印iframe内容示例代码
2013/08/20 Javascript
javasctipt如何显示几分钟前、几天前等
2014/04/30 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
2016/05/12 Javascript
JS留言功能的简单实现案例(推荐)
2016/06/23 Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
2016/08/02 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
python基础教程之对象和类的实际运用
2014/08/29 Python
node.js获取参数的常用方法(总结)
2017/05/29 Python
Python编写一个闹钟功能
2017/07/11 Python
python方向键控制上下左右代码
2018/01/20 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
h5页面背景图很长要有滚动条滑动效果的实现
2021/01/27 HTML / CSS
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
工程招投标邀请书
2014/01/26 职场文书
作文评语集锦大全
2014/04/23 职场文书
珍惜资源保护环境的建议书
2014/05/14 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL
python playwright之元素定位示例详解
2022/07/23 Python