Python Linux SSD速率读写

import io
import sys
import time
import  socket
import subprocess
import uuid
import os
import re

class hddreadspeed:
    def __init__(self):
        self.HddProt=[r'/dev/sda',r'/dev/sdb',r'/dev/sdc',r'/dev/sdd',r'/dev/sde',r'/dev/sdf',r'/dev/sdg',r'dev/sdh',r'dev/sdi']
        self.HddProtSpeed=[0,0,0,0,0,0,0,0,0]
        self.stat3_count=0
        self.stat2_count=0
        self.stat_count=0

    def HddReadWriteSpeed(self,prot):#硬盘读取速率
        try:
            if(subprocess.call('hdparm --offset 10 -t '+prot,shell=True)==0):
                out=str(subprocess.check_output('hdparm --offset 10 -t '+prot,shell=True))
                temp=str(out[out.find(r'=')+2:out.find('MB/sec')])
                return str(temp[:temp.find(r'.')])
        except ZeroDivisionError as e:
            print("\033[31m "+e+"\033[0m")
            exit(1)

    def AllHddRWSpeed(self,hddcount):#所有HDD测试
        for i in range(0,hddcount):
            self.HddProtSpeed[i]=int(self.HddReadWriteSpeed(self.HddProt[i]))
        self.CompareSpeed(int(hddcount))

    def CompareSpeed(self,hddCount):#比较速率
        for i in range(0,hddCount):
            if(int(self.HddProtSpeed[i])>250):
                self.stat3_count+=1
            elif(int(self.HddProtSpeed[i])>30):
                self.stat2_count+=1
            elif(int(self.HddProtSpeed[i])>10):
                self.stat_count+=1

if __name__=='__main__':
    hddsp=hddreadspeed()
    if(len(sys.argv)==3):
        hddsp.AllHddRWSpeed(int(sys.argv[1])+int(sys.argv[2]))
        if(int(sys.argv[1])==hddsp.stat3_count and int(sys.argv[2])==hddsp.stat2_count):
            print("pass")
            sys.exit(0)
        else:
            sys.exit(1)
    elif(len(sys.argv)==2):
        hddsp.AllHddRWSpeed(int(sys.argv[1]))
        if(int(sys.argv[1]==hddsp.stat3_count)):
            print("pass")
            sys.exit(0)
        else:
            sys.exit(1)
    sys.exit(255)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值