BYPASS SHELL BY ./RAZORGANZ
Server: nginx/1.20.1
System: Linux iZdzfnv9mwfppeZ 5.10.134-19.2.al8.x86_64 #1 SMP Wed Oct 29 22:47:09 CST 2025 x86_64
User: apache (48)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //usr/local/sysak/.sysak_components/tools/diskstatClass.pyo
�
�]ic@suddlZddlZddlZddlZddlmZd�Zd�Zd�Zde	fd��YZ
dS(i����N(tOrderedDictcCsoyVtd|d��<}|j�jd�}t|d�d>t|d�SWdQXWntk
rjdSXdS(Ns/sys/class/block/s/devt:iiii����(topentreadtsplittintt	Exception(tdevnametftdev((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytgetDevt
s*
cs�tjjd|�rt}n)tjjd|�r>t}n
ddgS|sT|ntjd|�jd�d�tt�fd�tj	d����}|s�g}n|j
��g|D]}t|�^q�S(Ns/sys/block/s/sys/class/block/i����t/i����cs
�|kS(N((tx(tmaster(s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyt<lambda>s(tostpathtexiststFalsetTruetreadlinkRtlisttfiltertlistdirtappendR
(RtisParttpartListtp((R
s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyt
getDevtRegions		
 	
cCs�ddddddg}d}|dkr.|Sxmtt|��D]Y}||d	ksm|t|�d	kr�|r�d
|||fSd|Sn||}qAWdS(NtBtKBtMBtGBtTBtPBg�@iis%.1f%s/ss%.1f(trangetlen(tvaluetwithUnittunitstsizeti((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyt
humConvert%s&t
diskstatClasscBs}eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�ZRS(
cCs�||_||_d|_t|_||_||_|dk	rNt|�nd|_	t
�|_i|_i|_
td�|_|r�t|d�|_ndS(Niis/proc/diskstatssw+(RtjsontcycleRtstartedtPatternt
nodiskStattNoneRt
utilThreshRt
fieldDictst
diskInfoDictstdeviceStatDictsRRtfJson(tselfRR2R,R0R/((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyt__init__5s						!		cCs2y|jt|�dSWntk
r-dSXdS(NtpartNamet-(R4tstrR(R7tdevt((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytgetDevNameByDevtEs
cCs2y|jt|�dSWntk
r-dSXdS(NR
R:(R4R;R(R7R<((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytgetMasterDevKs
cCs,y|j||SWntk
r'dSXdS(Ni(R5R(R7tdisktkey((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytgetDiskStatIndQs
c	Cs�|j}|j}|j}|jr(dSt|_tj�|_|jjd�x`|jj	�D]O}|j
�}|jdk	r�|j|dkr�|d|jkr�q`ni
ddgd6ddgd6ddgd6ddgd6ddgd6ddgd6ddgd	6ddgd
6ddgd6ddgd6}x8|j
�D]*\}}t|t|�d�|d<qBW|d|j�kr�|j|d|�tjd
|d�j
d�}|d}	|	|dkr�|d}	n|jtt|d�d>t|d��i|dd6|	d6�i
dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6}
|j|d|
�q`d||dd<||dj|�q`WdS(Niit1t2t3t4t5t6t7t8t10t11s/sys/class/block/Ri����i����iiR9R
tr_rqmtw_rqmtr_iopstw_iopstr_bpstw_bpstwaittr_waittw_waitsutil%(R3R4R5R.RttimeR-Rtseekt	readlinesRRR1titemsRtkeyst
setdefaultRRR;tupdate(R7R3R4R5tstattfieldtidxR%RR
t
deviceStat((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytstartWsD					"44" 

%#&cCs�|j}|j}tttj�|j�d�|_|jsDdSt|_|jj	d�x�|jj
�D]�}|j�}|jdk	r�|j|dkr�|d|jkr�qmnx@||dj�D]*\}}t|t|�d�|d<q�WqmWxy|j�D]k\}}|jdk	rM||jkrM|j|krMqnt|dd|ddd|jdd�}|dkr�|nd}||jkr�qn|||d<|d	d|d	d}	|	||d
<|dd|dd}
|
||d<|d
d|d
d}|||d<|dd|dd}|||d<|dd|ddd}
|
||d<|dd|ddd}|||d<|dd|dd}|dd|dd}|	|rt|||	|d�nd}|||d<|	r8t||	d�nd}|||d<|ret||d�nd}|||d<qWdS(NiiiRJgY@i�idsutil%RBRNRCRLRFRORGRMRDiRPRHRQRERIRRRSRT(R3R5tmaxRRUR-R.RRRVRWRRR1RXtroundR2(R7R3R5R\R^R%RR]tutilRNRLRORMRPRQtr_tickstw_ticksRRRSRT((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytstop~sV		%		"!&2+cCs�|j}|jdkr+t|j�dnd}d}tj|dt�}tjdtj��|d<x�|j	�D]�\}}|ddkr�qund	}|d
r�t
|d
t�jd|�nd|d
<|dr�t
|dt�jd|�nd|d<tj|dt�}||d<x$|j	�D]\}	}
|
||	<q/W|d
j
|�quWt|d
�dkr�tj|�}|j|�dSdS(Nitss2{            "time":"",            "diskstats":[]}tobject_pairs_hooks%Y/%m/%d %H:%M:%SRUsutil%is�{                "diskname":"","r_rqm":0,"w_rqm":0,"r_iops":0,"w_iops":0,                "r_bps":0,"w_bps":0,"wait":0,"r_wait":0,"w_wait":0,"util%":0}RQRPtdisknamet	diskstats(R5R-R;R,tloadsRRUtstrftimet	localtimeRXR*RtreplaceRR$tdumpstwriteDataToJson(R7R5tstSecststatJsonStrt
dstatDictsRR\tdstatJsonStrt	dstatDictR@tvaltdata((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyt
__showJson�s(	(33

cCs�|j}|j}|jrdS|j�tkr?|j�dS|jrcd}d}d}d}nddGH|dkr�t|�dnd}xm|j�D]_\}}	|j	r�t
jjd|�s�|	d
dkr�q�n|jr"||	d7}||	d7}||	d	7}||	d7}n|	d	rKt
|	d	t�jd|�nd}
|	drzt
|	dt�jd|�nd}d|t|	d�t|	d�t|	d�t|	d�||
t|	d
�t|	d�t|	d�t|	d
�fGHq�W|jr�d||||||dkrFt
||t�jd|�nd|rjt
|t�jd|�nd|r�t
|t�jd|�ndfGHndGHdS(Nis/%-20s%-8s%-8s%-8s%-8s%-12s%-12s%-8s%-8s%-8s%-8ssdevice-stat:RLRMRNRORPRQRRRSRTsutil%iRgs/sys/block/s0totalIops:%d(r:%d, w:%d), totalBw:%s(r:%s, w:%s)t(sdevice-stat:sr_rqmsw_rqmsr_iopssw_iopssr_bpssw_bpsswaitsr_waitsw_waitsutil%(R-R5R0tenableJsonShowRt_diskstatClass__showJsonR/R;RXRRRRR*Rn(R7tsecsR5tWrTotalIopstRdTotalIopst	WrTotalBwt	RdTotalBwRqRR\tstWbpststRbps((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytshow�sL			
		"!	//*-$	
2$-cCs-|jj�|j�r)|jj�ndS(N(RtcloseRzR6(R7((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytclear�s
cCs)|jr%|j|ddkr%tStS(Nsutil%i(R0R5RR(R7R((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyt
notCareDevice�s!cCsE|j}x5|j�D]'\}}|j|ddkrtSqWtS(Nsutil%i(R5RXRR(R7R5RR\((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pytdisableShow�s
	cCs|jr
tStS(N(R,RR(R7((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyRzscCs|jj|d�dS(Ns
(R6twrite(R7Rw((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyRps(t__name__t
__module__R8R=R>RAR`RfR{R�R�R�R�RzRp(((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyR+4s					'	1		*				(RRUR,tstringtcollectionsRR
RR*tobjectR+(((s9/usr/local/sysak/.sysak_components/tools/diskstatClass.pyt<module>s