python subprocess的初步应用

本文介绍了一个使用Python的subprocess模块来监控Linux系统磁盘空间的脚本。该脚本通过执行shell命令获取磁盘使用情况,并检查是否有分区使用率超过80%的情况发生。若发现使用率过高,则会向指定的Oracle数据库中插入警告信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天为了写一个对linux磁盘空间的监控脚本用到了subprocess这个包,在此记录下来。

process = subprocess.Popen(cmd,shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE)
各个参数:cmd 为shell指令 shell参数的影响暂时没用到 stdout为结果输出方式 stderr为错误输出方式 这里选择方式为管道

import subprocess
import cx_Oracle
import time

def run_cmd(cmd):
    process = subprocess.Popen(cmd,shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE)
    result_f = process.stdout
    error_f = process.stderr
    errors = error_f.read()
    if errors:
        pass
    result = result_f.read().decode()
    if result_f:
        result_f.close()
    if error_f:
        error_f.close()
    return result
def disk_check(sql):
    result = run_cmd(cmd)
    result = result.split('\n')
    conn = cx_Oracle.connect('你的数据库')
    for line in result:
         if 'G ' in line or 'M ' in line:
            line = line.split()
            for i in line:
                if '%' in i and int(i.strip('%')) > 80:
                    subject = ' SERVER FILESYSTEM USE% OVER ' + i + ', PLEASE CHECK!'
                    sql=sql.format(smcontent_value=subject)
                    cursor = conn.cursor()
                    cursor.execute(sql)
                    conn.commit()
                    cursor.close()
    conn.close()
具体思路为先用subprocess方法获得shell指令df -h 的结果,然后对结果的每一行处理,用spilt方法切分 去掉含%元素中的%,剩下的数字超过80就向数据库插入一条信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值