python3實(shí)現(xiàn)磁盤空間監(jiān)控
本文實(shí)例為大家分享了python3磁盤空間監(jiān)控的具體代碼,供大家參考,具體內(nèi)容如下
軟硬件環(huán)境
python3
apscheduler
前言
在做頻繁操作磁盤的python項(xiàng)目時(shí),經(jīng)常會(huì)碰到磁盤空間不足的情況,這個(gè)時(shí)候,工程應(yīng)該要有自己的處理模塊,當(dāng)磁盤利用率到達(dá)某個(gè)點(diǎn)時(shí),發(fā)出警告并停止程序的運(yùn)行。本文就利用Python3中的apscheduler模塊來處理這樣的問題。
代碼實(shí)踐
import os
import sys
import signal
import logging
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.interval import IntervalTrigger
# 開啟磁盤空間檢測(cè)
sched = BackgroundScheduler()
# 間隔5分鐘開啟一個(gè)檢查
intervalTrigger = IntervalTrigger(minutes=5)
# 給檢查任務(wù)設(shè)個(gè)id,方便任務(wù)的取消
sched.add_job(spaceMonitorJob, trigger=intervalTrigger, id='id_space_monitor')
sched.start()
# 禁止apscheduler相關(guān)信息屏幕輸出
logging.getLogger('apscheduler.executors.default').propagate = False
方法spaceMonitorJob代碼如下
def spaceMonitorJob():
'''
當(dāng)磁盤(切片存儲(chǔ)的目錄)利用率超過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.')
# 移除任務(wù),病關(guān)閉sched任務(wù)
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)
# 殺掉進(jìn)程
os.killpg(os.getpgid(os.getpid()), signal.SIGKILL)
# 退出
exit(-3)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Seaborn數(shù)據(jù)分析NBA球員信息數(shù)據(jù)集
這篇文章主要為大家介紹了Seaborn數(shù)據(jù)分析處理NBA球員信息數(shù)據(jù)集案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
探索Python fcntl模塊文件鎖和文件控制的強(qiáng)大工具使用實(shí)例
這篇文章主要介紹了Python fcntl模塊文件鎖和文件控制的強(qiáng)大工具使用實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
python框架django項(xiàng)目部署相關(guān)知識(shí)詳解
這篇文章主要介紹了python框架django項(xiàng)目部署相關(guān)知識(shí)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
一小時(shí)學(xué)會(huì)TensorFlow2之Fashion Mnist
這篇文章主要介紹了TensorFlow2之Fashion Mnist,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
不到20行代碼用Python做一個(gè)智能聊天機(jī)器人
小編先向大家介紹一下本次運(yùn)用到的python庫(kù),本次項(xiàng)目主要運(yùn)用到的庫(kù)有wxpy和chatterbot。對(duì)Python做一個(gè)智能聊天機(jī)器人的相關(guān)知識(shí)感興趣的朋友跟隨小編一起看看吧2019-04-04
在python中利用最小二乘擬合二次拋物線函數(shù)的方法
今天小編就為大家分享一篇在python中利用最小二乘擬合二次拋物線函數(shù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12

