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 相关文章推荐
Python3计算三角形的面积代码
Dec 18 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
numpy中的delete删除数组整行和整列的实例
May 09 Python
python用户评论标签匹配的解决方法
May 31 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
Oct 14 Python
python使用PyQt5的简单方法
Feb 27 Python
Python实现的服务器示例小结【单进程、多进程、多线程、非阻塞式】
May 23 Python
利用pyecharts实现地图可视化的例子
Aug 12 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
Selenium元素定位的30种方式(史上最全)
May 11 Python
详解Flask前后端分离项目案例
Jul 24 Python
Python Django路径配置实现过程解析
Nov 05 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 fgetcsv 定义和用法(附windows与linux下兼容问题)
2012/05/29 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
php图片上传类 附调用方法
2016/05/15 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
JavaScript prototype属性深入介绍
2012/11/27 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
打造个性化的功能强大的Jquery虚拟键盘(VirtualKeyboard)
2014/10/11 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
Node.js中常规的文件操作总结
2016/10/13 Javascript
jQuery插件ajaxFileUpload使用实例解析
2016/10/19 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
vue2.0移动端滑动事件vue-touch的实例代码
2018/11/27 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
Python操作MySQL模拟银行转账
2018/03/12 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
django session完成状态保持的方法
2018/11/27 Python
python sort、sort_index方法代码实例
2019/03/28 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
正隆泰信息技术有限公司上机题
2012/06/14 面试题
档案室主任岗位职责
2014/02/12 职场文书
公司租房协议书范本
2014/10/08 职场文书
公司宣传语大全
2015/07/13 职场文书
k-means & DBSCAN 总结
2021/04/27 Python