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 相关文章推荐
Windows系统配置python脚本开机启动的3种方法分享
Mar 10 Python
利用信号如何监控Django模型对象字段值的变化详解
Nov 27 Python
python统计字母、空格、数字等字符个数的实例
Jun 29 Python
用python生成1000个txt文件的方法
Oct 25 Python
python 将json数据提取转化为txt的方法
Oct 26 Python
对pyqt5多线程正确的开启姿势详解
Jun 14 Python
Python 70行代码实现简单算式计算器解析
Aug 30 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
Feb 20 Python
Python 从attribute到property详解
Mar 05 Python
python的reverse函数翻转结果为None的问题
May 11 Python
Python爬取某平台短视频的方法
Feb 08 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 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数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
php实现websocket实时消息推送
2018/03/30 PHP
你需要知道的10个最佳javascript开发实践小结
2012/04/15 Javascript
javascript禁制后退键(Backspace)实例代码
2013/11/15 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
jquery等待效果示例
2014/05/01 Javascript
js获取会话框prompt的返回值的方法
2015/01/10 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
2015/03/19 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
JS多物体实现缓冲运动效果示例
2016/12/20 Javascript
浅谈js函数三种定义方式 & 四种调用方式 & 调用顺序
2017/02/19 Javascript
JS中将多个逗号替换为一个逗号的实现代码
2017/06/23 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
jquery+php后台实现省市区联动功能示例
2019/05/23 jQuery
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
vue-cli创建的项目中的gitHooks原理解析
2020/02/14 Javascript
[04:26]2014DOTA2国际邀请赛-Newbee顺利进入胜者组决赛 独家专访战神7
2014/07/19 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python3实现的反转单链表算法示例
2019/03/08 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
在Django中预防CSRF攻击的操作
2020/03/13 Python
keras模型保存为tensorflow的二进制模型方式
2020/05/25 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
Python logging模块handlers用法详解
2020/08/14 Python
详解使用双缓存解决Canvas clearRect引起的闪屏问题
2019/04/29 HTML / CSS
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
导游的职业规划书范文
2013/12/27 职场文书
银行员工辞职信范文
2014/01/20 职场文书
六一节目主持词
2014/04/01 职场文书
党员评议个人总结
2014/10/20 职场文书
反邪教学习心得体会
2016/01/15 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python