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)
03-20
1636
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-16
2560
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)