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中将字典转换为XML以及相关的命名空间解析
Oct 15 Python
Python的Django REST框架中的序列化及请求和返回
Apr 11 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 Python
python中 logging的使用详解
Oct 25 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
详解Django的CSRF认证实现
Oct 09 Python
对python中大文件的导入与导出方法详解
Dec 28 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
Jul 04 Python
Python中使用gflags实例及原理解析
Dec 13 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
python基于turtle绘制几何图形
Jun 15 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/05/24 PHP
PHP图片库imagemagick安装方法
2014/09/23 PHP
Symfony的安装和配置方法
2016/03/17 PHP
基于PHP实现生成随机水印图片
2020/12/09 PHP
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
Asp.net下使用Jquery Ajax传送和接收DataTable的代码
2010/09/12 Javascript
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
layui导航栏实现代码
2017/05/19 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
Three.js加载外部模型的教程详解
2017/11/10 Javascript
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
[02:10]DOTA2亚洲邀请赛 EG战队出场宣传片
2015/02/07 DOTA
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
Python collections模块实例讲解
2014/04/07 Python
在Python中处理字符串之isdecimal()方法的使用
2015/05/20 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
Python实现图片识别加翻译功能
2019/12/26 Python
django rest framework使用django-filter用法
2020/07/15 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
HTML5样式控制示例代码
2013/11/27 HTML / CSS
意大利专业化妆品品牌:KIKO MILANO
2017/02/01 全球购物
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
学生会招新策划书
2014/02/14 职场文书
司机职责范本
2014/03/08 职场文书
学校读书活动总结
2014/06/30 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
《模拟人生4》推出新补丁 “婚礼奇缘”DLC终于得到修复
2022/04/03 其他游戏