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中MySQLdb模块用法实例
Nov 10 Python
使用Python的内建模块collections的教程
Apr 28 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
python利用有道翻译实现"语言翻译器"的功能实例
Nov 14 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
Django实现CAS+OAuth2的方法示例
Oct 30 Python
numpy实现神经网络反向传播算法的步骤
Dec 24 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
详解python内置模块urllib
Sep 09 Python
10个示例带你掌握python中的元组
Nov 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
PHP自动生成后台导航网址的最佳方法
2013/08/27 PHP
php自定义函数截取汉字长度
2014/05/15 PHP
浅析application/x-www-form-urlencoded和multipart/form-data的区别
2014/06/22 PHP
php实现httpRequest的方法
2015/03/13 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题
2019/10/15 PHP
对xmlHttp对象方法和属性的理解
2011/01/17 Javascript
connect中间件session、cookie的使用方法分享
2014/06/17 Javascript
JS实现的左侧竖向滑动菜单效果代码
2015/10/19 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
2017/02/18 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
ES6 Symbol在对象中的作用实例分析
2020/06/06 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
python将MongoDB里的ObjectId转换为时间戳的方法
2015/03/13 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
kaggle+mnist实现手写字体识别
2018/07/26 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
python的debug实用工具 pdb详解
2019/07/12 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
美国家庭鞋店:Shoe Sensation
2019/09/27 全球购物
赔偿协议书范本
2014/04/15 职场文书
2014年秘书工作总结
2014/11/25 职场文书
转学证明范本
2015/06/19 职场文书
初中班主任心得体会
2016/01/07 职场文书
Django中的JWT身份验证的实现
2021/05/07 Python
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS
解决Vmware虚拟机安装centos8报错“Section %Packages Does Not End With %End. Pane Is Dead”
2022/06/01 Servers