您好,登錄后才能下訂單哦!
本文實例為大家分享了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)
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。