gpt4 book ai didi

python3实现磁盘空间监控

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python3实现磁盘空间监控由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例为大家分享了python3磁盘空间监控的具体代码,供大家参考,具体内容如下 。

软硬件环境 。

python3 apscheduler 。

前言 。

在做频繁操作磁盘的python项目时,经常会碰到磁盘空间不足的情况,这个时候,工程应该要有自己的处理模块,当磁盘利用率到达某个点时,发出警告并停止程序的运行。本文就利用Python3中的apscheduler模块来处理这样的问题.

代码实践 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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代码如下 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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 。

最后此篇关于python3实现磁盘空间监控的文章就讲到这里了,如果你想了解更多关于python3实现磁盘空间监控的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com