python3实现磁盘空间监控
作者:djstavaV 发布时间:2023-07-09 14:12:49
标签:python,磁盘空间
本文实例为大家分享了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)
来源:https://blog.csdn.net/djstavaV/article/details/78283891


猜你喜欢
- 对于添加一个文件的路径我用的第一个方法就是sys.path.append()博主比较懒,就直接截图了啊对于上级文件路径和再上一级的路径可以直
- nginx简单配置php服务(多个)摘要:大部分网站开发语言都要运行在服务器,比如主流的nginx、apache等等,部署服务器环境对于大部
- 对于vue.js中的this.emit的理解:this.emit(‘increment1',”这个位子是可以加参数的”);其实它的作
- 0.摘要在Python中,尤其是数组当中,对于一些异常值往往需要进行特殊处理。为了防止异常值与正常数据混淆,影响最终计算结果,常用的方法是将
- MySQL Innodb 引擎优化,InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoD
- 近来,越来越多的数据科学家开始使用Python,我不由得想到,尽管他们从pandas、scikit-learn和numpy这些库中得到了不少
- Mysql查看是否使用到索引mysql数据库创建索引优化之后,在查询时想看下是否使用到索引,使用执行计划查看:mysql> expla
- 大家可以先参考官方演示文档:效果图:'''==============3D scatterplot=========
- 在上一篇的基础上,继续在透明窗体上绘制小球,一、画个大球看看(一)核心代码在on_resize函数内部增加如下画圆的代码 can
- 认知心理学家Donald A. Norman将人类的行动分解成七个阶段:1. 确定目标2. 确定意图3. 明确行动内容4. 执行5. 感知外
- 皇城PKPython中格式化字符串目前有两种阵营:%和format,我们应该选择哪种呢?自从Python2.6引入了format这个格式化字
- Js 的异步确实完美地解决了单线程的问题,但是同时也会带来许多问题。而且随着用的框架越来越多,越来越复杂,定位问题的难度也随之上升。不知为什
- package 的导入语法写 Go 代码的时经常用到 import 这个命令用来导入包,参考如下:import( "f
- 概述据说fastapi是目前最快的异步框架,遂决定将其和django异步进行并发比较。先说结果fastapi的异步可以使整体运行速度非常均衡
- 制作初衷:外地开了票到公司后发现信息有错误,无法报销;公司的行政和财务经常在工作日被问及公司开票信息,影响心情和工作;引入相应的专业APP来
- 一、设置画布turtle为我们展开用于绘图区域,我们可以设置它的大小和初始位置turtle.screensize(canvwidth=600
- 在一台新的申请服务器上安装Oracle,在创建数据库实例时,遇到Enterprise Manager配置失败问题,无法进行远程连接。操作系统
- 一、安装Docker安装环境:系统:CentOS Linux7 x86_64安装脚本wget -qO- https://get.docker
- 我就废话不多说了,大家还是直接看代码吧~import re s = 'alibaba阿里巴巴' # 待分割字符串en_let
- 目录del:根据索引值删除元素pop():根据索引值删除元素remove():根据元素值进行删除clear():删除列表所有元素在 Pyth