python3实现磁盘空间监控
本文实例为大家分享了python3磁盘空间监控的具体代码,供大家参考,具体内容如下
软硬件环境
python3
apscheduler
前言
在做频繁操作磁盘的python项目时,经常会碰到磁盘空间不足的情况,这个时候,工程应该要有自己的处理模块,当磁盘利用率到达某个点时,发出警告并停止程序的运行。本文就利用Python3中的apscheduler模块来处理这样的问题。
代码实践
importos
importsys
importsignal
importlogging
fromapscheduler.schedulers.backgroundimportBackgroundScheduler
fromapscheduler.triggers.intervalimportIntervalTrigger
#开启磁盘空间检测
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代码如下
defspaceMonitorJob():
'''
当磁盘(切片存储的目录)利用率超过90%,程序退出
:return:
'''
try:
st=os.statvfs('/')
total=st.f_blocks*st.f_frsize
used=(st.f_blocks-st.f_bfree)*st.f_frsize
exceptFileNotFoundError:
print('checkwebrootspaceerror.')
logger.error('checkwebrootspaceerror.')
#移除任务,病关闭sched任务
sched.remove_job(job_id='id_space_monitor')
sched.shutdown(wait=False)
sys.exit(-3)
ifused/total>0.9:
print('Noenoughspace.')
logger.debug('Noenoughspace.')
sched.remove_job(job_id='id_space_monitor')
sched.shutdown(wait=False)
#杀掉进程
os.killpg(os.getpgid(os.getpid()),signal.SIGKILL)
#退出
exit(-3)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。