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 相关文章推荐
go和python调用其它程序并得到程序输出
Feb 10 Python
一篇文章快速了解Python的GIL
Jan 12 Python
浅谈DataFrame和SparkSql取值误区
Jun 09 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
PyTorch中的Variable变量详解
Jan 07 Python
tensorflow求导和梯度计算实例
Jan 23 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
Python faker生成器生成虚拟数据代码实例
Jul 20 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
Oct 09 Python
python自动生成sql语句的脚本
Feb 24 Python
利用python调用摄像头的实例分析
Jun 07 Python
浅谈Python数学建模之数据导入
Jun 23 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
PHP执行系统命令函数实例讲解
2021/03/03 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
Vuejs第十一篇组件之slot内容分发实例详解
2016/09/09 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
JavaScript仿微博发布信息案例
2016/11/16 Javascript
Vue异步加载about组件
2017/10/31 Javascript
Vue实现随机验证码功能
2020/12/29 Vue.js
[01:11:37]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第一场 11.19
2020/11/19 DOTA
Python 编码处理-str与Unicode的区别
2016/09/06 Python
pygame库实现移动底座弹球小游戏
2020/04/14 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
python PIL模块的基本使用
2020/09/29 Python
Python+Xlwings 删除Excel的行和列
2020/12/19 Python
java关于string最常出现的面试题整理
2021/01/18 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
华为python面试题
2016/05/03 面试题
奖学金自我鉴定范文
2013/10/03 职场文书
大学自我鉴定
2013/12/20 职场文书
《风筝》教学反思
2014/04/10 职场文书
借款担保书范文
2014/05/13 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
2014年秘书工作总结
2014/11/25 职场文书
幼儿教师年度个人总结
2015/02/05 职场文书
村官2015年度工作总结
2015/10/14 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
使用vue-element-admin框架从后端动态获取菜单功能的实现
2021/04/29 Vue.js
详细分析PHP7与PHP5区别
2021/06/26 PHP
javascript之Object.assign()的痛点分析
2022/03/03 Javascript