本文实例为大家分享了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)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
内蒙古资源网 Copyright www.nmgbbs.com
暂无“python3实现磁盘空间监控”评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。