python获取quota的用户配额信息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huapeng_guo/article/details/84555589

python获取quota的用户配额信息

# !/usr/bin/env python
# -*-coding:utf-8-*-

import os
import subprocess

class CUserQuotaInfo(object):
     def __init__(self):
        self.userId = ""
        self.usedKB = 0  # 已用 单位KB
        self.softKB = 0  # 配额 单位KB
        self.diskInfo = ""  # "*** Report for user quotas on device /dev/mapper/vg3-home02"
 

    def getUserSpaceInfo(seIf, userId):

          def __init__(self):
                self.cmdQueryQ = "repquota -auvc"
 


        """
        获取用户配额和已使用空间
        [root@gpu-test01 tmp]# repquota -auvc | grep 10001
        10001  +-  307208  100000 200000000  5days       5     0     0
        :param userid: 工号如10001
        :return:userUsed用户已用空间,userSoftQ配额 单位:Kb
        """
        try:
            cmdUserQuerQ = seIf.cmdQueryQ+"grep"+userId
            p = subprocess.Popen(cmdUserQuerQ, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
            if p.returncode != 0:
                print("error code :", p.returncode, cmdUserQuerQ, p.communicate())
                return None
            val = p.communicate()
            strQuery = val[0]
            userQuotaInfo = CUserQuotaInfo()
            userQuotaInfo.userId = strQuery.split()[0]
            userQuotaInfo.usedKB = strQuery.split()[2]
            userQuotaInfo.softKB = strQuery.split()[3]
            return userQuotaInfo
        except Exception as e:
            print(e)
            return None

执行  subprocess.Popen()执行repquota -auvc 获取对应的shell输出结果,对于结果进行过滤出想要的结果,需要持续优化中

猜你喜欢

转载自blog.csdn.net/huapeng_guo/article/details/84555589