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实现从字典中删除元素的方法
May 04 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
Sanic框架配置操作分析
Jul 17 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
django做form表单的数据验证过程详解
Jul 26 Python
解决python3 安装不了PIL的问题
Aug 16 Python
Django实现文件上传和下载功能
Oct 06 Python
python tkinter GUI绘制,以及点击更新显示图片代码
Mar 14 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
Django之富文本(获取内容,设置内容方式)
May 21 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 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
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
常用的php对象类型判断
2008/08/27 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
php resizeimage 部分jpg文件 生成缩略图失败的原因分析及解决办法
2016/03/23 PHP
thinkPHP5实现的查询数据库并返回json数据实例
2017/10/23 PHP
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
在Javascript里访问SharePoint列表数据的实现方法
2011/05/22 Javascript
javascript运行机制之this详细介绍
2014/02/07 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
js如何准确获取当前页面url网址信息
2020/09/13 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
浅谈JavaScript_DOM学习篇_图片切换小案例
2019/03/19 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
vue穿梭框实现上下移动
2021/01/29 Vue.js
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
python修改微信和支付宝步数的示例代码
2020/10/12 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
经济与贸易专业应届生求职信
2013/11/19 职场文书
党委书记岗位职责
2013/11/24 职场文书
公司开业庆典策划方案
2014/06/04 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
二手房购房协议书范本
2014/10/05 职场文书
教育实习指导教师评语
2014/12/31 职场文书
教师学期末个人总结
2015/02/13 职场文书
创业计划书之甜品店
2019/09/18 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS