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 相关文章推荐
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
Python中最常用的操作列表的几种方法归纳
Apr 24 Python
在Python中使用判断语句和循环的教程
Apr 25 Python
Python实现针对给定字符串寻找最长非重复子串的方法
Apr 21 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
python 爬取马蜂窝景点翻页文字评论的实现
Jan 20 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
python图形开发GUI库wxpython使用方法详解
Feb 14 Python
Python3 mmap内存映射文件示例解析
Mar 23 Python
Python如何用wx模块创建文本编辑器
Jun 07 Python
python suds访问webservice服务实现
Jun 26 Python
python基础之停用词过滤详解
Apr 21 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+ajax 无刷新删除数据
2010/02/20 PHP
php中截取中文字符串的代码小结
2011/07/17 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
对字符串进行HTML编码和解码的JavaScript函数
2010/02/01 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
AngularJS动态生成div的ID源码解析
2016/08/29 Javascript
文本溢出插件jquery.dotdotdot.js使用方法详解
2017/06/22 jQuery
Bootstrap4如何定制自己的颜色和风格
2018/02/26 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
[01:02:46]VGJ.S vs NB 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
在Python中操作字典之update()方法的使用
2015/05/22 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
python set内置函数的具体使用
2019/07/02 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
python实现3D地图可视化
2020/03/25 Python
PyCharm上安装Package的实现(以pandas为例)
2020/09/18 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
党员培训思想汇报
2014/01/07 职场文书
支部组织生活会方案
2014/06/10 职场文书
换届选举主持词
2015/07/03 职场文书
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server
Windows server 2003卸载和安装IIS的图文教程
2022/07/15 Servers