403Webshell
Server IP : 210.245.233.93  /  Your IP : 216.73.216.226
Web Server : Apache/2.2.15 (CentOS)
System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/share/dstat/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/dstat/dstat.pyc
>Yc@sddklZdZhdd6adZyddkZddkZddkZddkZddk	Z	ddk
Z
ddkZddkZddk
Z
ddkZeeiideeiieiieidd	ed
edWnej
o	ZnXeiddfjoeid
nyeefWnej
odZdZnXeiddfjoeiddfjo
dZn$eiddfjo
dZneiddfjo
dZndfdYZdfdYZdefdYZdefdYZ defdYZ!defdYZ"defd YZ#d!efd"YZ$d#efd$YZ%d%efd&YZ&d'efd(YZ'd)efd*YZ(d+efd,YZ)d-efd.YZ*d/efd0YZ+d1efd2YZ,d3efd4YZ-d5efd6YZ.d7efd8YZ/d9efd:YZ0d;efd<YZ1d=efd>YZ2d?efd@YZ3dAefdBYZ4dCefdDYZ5dEefdFYZ6dGefdHYZ7dIefdJYZ8dKefdLYZ9dMefdNYZ:dOefdPYZ;h'dQdR6dSdT6dUdV6dWdX6dYdZ6d[d\6d]d^6d_d`6dadb6dcdd6dedf6dgdh6didj6dkdl6dmdn6dodp6dqdr6dsdt6dudv6dwdx6dydz6d{d|6d}d~6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6dd6a<hdd6dd6dd6dd6dd6dd6Z=dZ>dZ?dZ@dZAdZBdZCddZDddZEddZFdZGdZHdZIddddZJdZKdZLdZMdZNdZOdZPedZQdZRdZSdZTdZUdZVdZdZWdZXdZYdZZe[djoy.eOeeida\e>aeYWnGej
o;Zt\i]oei^i_dnei^i_tdnXt\i`oeiiat\i`oeibt\i`nedneda\dacdS(i(t
generatorss0.7.0ttdefaultcCs;tii|o$|tijotii|ndS(N(tostpathtisdirtsystappend(R((s/usr/share/dstat/dstat.pytaddpaths#Ns	~/.dstat/is	/plugins/s/usr/share/dstat/s/usr/local/share/dstat/is#error: Python 2.2 or later requirediiccs0d}x#|D]}||fV|d}q
WdS(Nii((tsequencetindextitem((s/usr/share/dstat/dstat.pyt	enumerate2s
cCs>d}g}x+|D]#}|i||f|d}qW|S(Nii(R(R	R
tseqlistR((s/usr/share/dstat/dstat.pyR8scCs%d}x|D]}||}q
W|S(Ni((R	tretti((s/usr/share/dstat/dstat.pytsumCs
tOptionscBs5eZdZdZdZdZdZRS(c	Cs||_t|_d|_d|_d|_d|_d|_t|_	t|_
t|_d|_d|_
d|_t|_t|_t|_t|_t|_t}g|_tiipt|_t|_t|_nhdid6djd
6dkd
6|_ynddk}|i|ddddddddddddddddddd d!d"d#g|\}}Wn4|ij
o%}d$t|GHtidnXxT|D]L\}}|dljo|iid&q|dmjo|i d(|_q|dnjo|iid*q|dojo|i!||_q|dpjo|iid-q|dqjo|iid/q|drjo|iid1q|dsjo|i d(|_q|dtjo|iid4q|dujo|iid6q|dvjoEti"d:|d;i#|i d(fIJ|i|i d(7_q|dwjo|iid=q|dxjo|i d(|_
q|dyjo|iid@q|dzjo|iidBq|d{jo|iidDq|d|jo|i d(|_q|d}jo|iidGq|d~jo|iidIq|djo|iidKq|djo"|id&d*d=d/dKg7_q|djo%|id@d6d/d*dKd&g7_q|djo
t|_	q|djo
t|_q|djo|id|_q|djo2hi$|i%}|i&|i|7_q|djo
t|_
q|djo
t|_q|djot'tidq|djot|_t|_q|djo
t|_q|djo
t|_q|djo
||_q|djo
||_q|djo%|i(|i)tidq|djo|i*tidq|i+dco|ii|ddqde|GHtidqW|i
o |iodfGHtidn|ipd&d*d=d/dKg|_nyXt,|djot-|d|_nt,|djot-|d|_nWndgGHtidnX|idjodhGHtidndS(Niiitsdashd[a-d]tlocalssd[b-k]ssd[v-z]ssda[a-e]tloresssd[l-u]ssda[f-o]thiress acdfghilmno:prstTvyC:D:I:M:N:S:Vtallsall-pluginstbwtblackonwhitetdebugt
filesystemtfloattfulltgonutsthelptintegertlisttmodstmodulestnocolort	noheaderstnoupdatesoutput=spidfile=tversiontvmstats5dstat: %s, try dstat -h for a list of all the optionss-ctcpus-Ct,s-dtdisks-Ds--filesystemtfss-gtpages-itints-Is-ltloads-mtmems-Ms--modss	--moduless9WARNING: Option %s is deprecated, please use --%s insteads --s-ntnets-Ns-ptprocs-rtios-stswaps-Ss-tttimes-Ttepochs-yRs-as--alls-vs--vmstats-fs--fulls--bws--black-on-whites--debugs
--all-pluginss--floats	--integers--lists	--nocolors--noheaderss
--noupdates-os--outputs	--pidfiles-hs--helps-Vs	--versions--isNdstat: option %s unknown to getopt, try dstat -h for a list of all the optionssOdstat: option --float and --integer are mutual exlusive, you can only force ones>dstat: incorrect argument, try dstat -h for the correct syntaxs2dstat: delay must be an integer, greater than zero(Rshd[a-d](ssd[b-k]ssd[v-z]ssda[a-e](ssd[l-u]ssda[f-o](s-c(s-C(s-d(s-D(s--filesystem(s-g(s-i(s-I(s-l(s-m(s-Ms--modss	--modules(s-n(s-N(s-p(s-r(s-s(s-S(s-t(s-T(s-y(s-as--all(s-vs--vmstat(s-fs--full(s--bws--black-on-white(s--debug(s
--all-plugins(s--float(s	--integer(s--list(s	--nocolor(s--noheaders(s
--noupdate(s-os--output(s	--pidfile(s-hs--help(s-Vs	--version(.targstFalseRtcounttNonetcpulistRtdelaytdisklistRRRtintlisttnetlisttswaplisttTruetcolortupdatetheadertoutputtpidfiletlistpluginstpluginsRtstdouttisattytdisksettgetoptterrortstrtexitRtsplittget_disklisttstderrtjointfromkeystkeystsorttshowpluginstusageRR&t
startswithtlenR-(	tselfR6t
allpluginsRKtoptstexctopttargRG((s/usr/share/dstat/dstat.pyt__init__Js																						

#










)









"
%












	













	
cCs|id}g}x|D]}|d djotii|otii|opti|}|ddjo7tiitii||}tii|}nd||fGH|}n|d}|i	|qd|GHq|i	|qW|S(NR)is/dev/it/sdstat: symlink %s -> %ssdstat: %s does not exist(
RORRtexiststislinktreadlinkRRtdirnametnormpathR(RZtdisksR<RR*ttarget((s/usr/share/dstat/dstat.pyRPs$!


cCsdtGHdGHdGHHdtitifGHdtidGHdtiGHHd}t|ip
d	}nd
ti	d|fGHt
\}}d||fGHHd
tGHdti
GHdtidGHH|atdS(NsDstat %ss&Written by Dag Wieers <dag@wieers.com>s2Homepage at http://dag.wieers.com/home-made/dstat/sPlatform %s/%ss	Kernel %sis	Python %sRsno s#Terminal type: %s (%scolor support)tTERMs#Terminal size: %d lines, %d columnssProcessors: %dsPagesize: %dsClock ticks per secs: %dt
SC_CLK_TCK(tVERSIONRtnameRtplatformtunameR&tgettermcolorRAtgetenvtgettermsizetgetcpunrtresourcetgetpagesizetsysconftopRV(RZRAtrowstcols((s/usr/share/dstat/dstat.pyR&s*	
cCs	dGHdS(Ns/Usage: dstat [-afv] [options..] [delay [count]]((RZ((s/usr/share/dstat/dstat.pyRWscCs	dGHdS(NsVersatile tool for generating system resource statistics

Dstat options:
  -c, --cpu              enable cpu stats
     -C 0,3,total           include cpu0, cpu3 and total
  -d, --disk             enable disk stats
     -D total,hda           include hda and total
  -g, --page             enable page stats
  -i, --int              enable interrupt stats
     -I 5,eth2              include int5 and interrupt used by eth2
  -l, --load             enable load stats
  -m, --mem              enable memory stats
  -n, --net              enable network stats
     -N eth1,total          include eth1 and total
  -p, --proc             enable process stats
  -r, --io               enable io stats (I/O requests completed)
  -s, --swap             enable swap stats
     -S swap1,total         include swap1 and total
  -t, --time             enable time/date output
  -T, --epoch            enable time counter (seconds since epoch)
  -y, --sys              enable system stats

  --aio                  enable aio stats
  --fs, --filesystem     enable fs stats
  --ipc                  enable ipc stats
  --lock                 enable lock stats
  --raw                  enable raw stats
  --socket               enable socket stats
  --tcp                  enable tcp stats
  --udp                  enable udp stats
  --unix                 enable unix stats
  --vm                   enable vm stats

  --plugin-name          enable plugins by plugin name (see manual)
  --list                 list all available plugins

  -a, --all              equals -cdngy (default)
  -f, --full             automatically expand -C, -D, -I, -N and -S lists
  -v, --vmstat           equals -pmgdsc -D total

  --bw, --blackonwhite   change colors for white background terminal
  --float                force float values on screen
  --integer              force integer values on screen
  --nocolor              disable colors (implies --noupdate)
  --noheaders            disable repetitive headers
  --noupdate             disable intermediate updates
  --output file          write CSV output to file

delay is the delay in seconds between each update (default: 1)
count is the number of updates to display before exiting (default: unlimited)
((RZ((s/usr/share/dstat/dstat.pyRs3(t__name__t
__module__R`RPR&RWR(((s/usr/share/dstat/dstat.pyRIs
				tdstatcBseZdZdZdZdZdZdZdZ	dZ
dZdZdddZ
dZd	Zd
ZdZdZd
ZdZdZdZdZdZdZRS(tfiiicCst|io|i|_nt|io|i|_n|ip
tdnt|io|i|_nt|io|i|_n|ip|i|_nh|_h|_h|_|i	djo;x|iD])}d|i|<|i|<|i|<qWnx|idgD]}t
|i	|i|<t
|i	|i|<t
|i	|i|<xFt
|i	D]5}d|i||<|i||<|i||<qWq4WdS(NsNo counter objects to monitorittotal(tcallabletdiscovertvarst	ExceptionRltnicktvaltset1tset2Rxtrange(RZRlR((s/usr/share/dstat/dstat.pytprepareas6


			
+cGsg|_g|_xS|D]K}y;t|}|o$|ii||ii|nWqqXqW|iptd|ndS(sOpen stat file descriptorsCannot open file %sN(tfiletfdtdopenRR(RZt	filenamestfilenameR((s/usr/share/dstat/dstat.pytopen|s		
ccsAx:|iD]/}|idx|iD]}|Vq*Wq
WdS(s%Return lines from any file descriptoriN(Rtseekt	readlines(RZRtline((s/usr/share/dstat/dstat.pyRs


ccsx|iD]}|idxp|iD]b}|o%|o|i||i|Vq*|o|i|diVq*|i|Vq*Wq
WdS(s+Return split lines from any file descriptorit N(RRRtreplaceRO(RZtdelimRRR((s/usr/share/dstat/dstat.pyt
splitliness


cCs_|io)t|i|it|idSt|i|it|idSdS(sReturn complete stat widthiN(RxRYRtcolwidthR(RZ((s/usr/share/dstat/dstat.pyt	statwidths
)cCsGt|itio|iSt|i|it|idSdS(sReturn column widthiN(t
isinstanceRlttypest
StringTypetwidthRYR(RZ((s/usr/share/dstat/dstat.pyRscCs
td}t|itio<|i}||id|!i|iddtdSxt|iD]\}}|i	}||d|!i|idd}|dt
|ijo>tio"|tdt
dtd}q|t
d	}qlqlW|S(
NttitleiRt-Ritframetdashtspace(tthemeRRlRRRtcenterRRRRYRvRAtchar(RZRRRRl((s/usr/share/dstat/dstat.pyRs
0&
"cCsud}t|itioxyt|iD]h\}}|td|d|i!i|itd}|dt	|ijo|t
d}q,q,W|Sxt|iD]\}}xyt|iD]h\}}|td|d|i!i|itd}|dt	|ijo|t
d}qqW|dt	|ijo|tdt
d}qqW|SdS(	NRtsubtitleiRiRRtcolon(RRlRRRRRRRRYR(RZRRRRltj((s/usr/share/dstat/dstat.pyRs$00cCst|itio%d|iddt|idSd}xlt|iD][\}}|d|ddt|id}|dt|ijo|d}qQqQW|SdS(Nt"R)iR(RRlRRRYRR(RZRRRl((s/usr/share/dstat/dstat.pytcsvtitles%'cCs%d}t|itio_xWt|iD]F\}}|d|d}|dt|ijo|d}q,q,W|Sxt|iD]\}}xWt|iD]F\}}|d|d}|dt|ijo|d}qqW|dt|ijo|d}qqW|SdS(NRRiR)(RRlRRRRRY(RZRRRRlR((s/usr/share/dstat/dstat.pytcsvsubtitles$cCsM|ip
tdn|ip
tdn|iotStddS(sCheck if stat is applicables$No objects found, no stats availables)No objects discovered, no stats availablesUnknown problem, please reportN(RRRRR@(RZ((s/usr/share/dstat/dstat.pytchecks




cGstS(N(R@(RZtobjlist((s/usr/share/dstat/dstat.pyRscCsd}xt|iD]\}}t|i|tipt|i|tio?|t|i||i|i	|i
}tdtd}n4|t
|i||i|i	|i
}td}|dt|ijo||}qqW|S(sDisplay stat resultsRRRRi(RRRRRt	TupleTypetListTypet
cprintlistttypeRtscaleRRtcprintRY(RZRRRltsep((s/usr/share/dstat/dstat.pytshows4))
cCsD||dj	otdtdS||jotdtdSdS(NiRtpipetgtR(RR(RZttotlisttvislist((s/usr/share/dstat/dstat.pytshowends

cCs9d}d}x#t|iD]\}}t|i|tipt|i|tiodxt|i|D]H\}}|||}|dt|i|jo|d}qsqsWnGt|i|tio||i|}n|||i|}|dt|ijo|d}qqW|S(NcSs*|t|jo	d|Sdt|S(Ns%.3fs%s(tround(tvar((s/usr/share/dstat/dstat.pytprintcsvs	RiR)(	RRRRRRRRYR(RZRRRRlRR((s/usr/share/dstat/dstat.pytshowcsvs 	4cCs0||dj	odS||dj	odSdS(NiR)R((RZRR((s/usr/share/dstat/dstat.pyt
showcsvends
N(RyRzR9RRlRRRRRxRRRRRRRRRRRRRRRR(((s/usr/share/dstat/dstat.pyR{Us.								
						t	dstat_aiocBseZdZdZRS(cCs>d|_d|_d|_|idd|_d|_dS(	Ntasynctdis/proc/sys/fs/aio-nrs#aiotaio(s#aio(R(RlRRRRR(RZ((s/usr/share/dstat/dstat.pyR`$s			
	cCsLxE|iD]7}t|djoq
nt|d|id<q
WdS(NiiR(RRYtlongR(RZtl((s/usr/share/dstat/dstat.pytextract,s

(RyRzR`R(((s/usr/share/dstat/dstat.pyR#s	t	dstat_cpucBs5eZdZdZdZdZdZRS(cCs>d|_d|_d|_|idd|_d|_dS(
Ntpii"s
/proc/stattusrRtidltwaithiqtsiqi(RssysRRRR(RRRRRRx(RZ((s/usr/share/dstat/dstat.pyR`2s			
	cGsg}x[|iD]M}t|djp|ddd!djoqn|i|ddqW|ix|D]}|i|quW|S(NiiiR((RRYRRU(RZRRRR((s/usr/share/dstat/dstat.pyR:s
+
cCsg}tio
ti}nStip
d}n?g}d}x/|tjo!|it||d}q@Wx6|D].}||idgjo|i|qvqvW|S(NR}ii(stotal(RvR:RtcpunrRRMR(RZRtvarlistR(Rl((s/usr/share/dstat/dstat.pyRCs 




cCsQg}xD|iD]9}|djo|idq|id|dqW|S(NR}stotal cpu usageR(s usage(RR(RZRRl((s/usr/share/dstat/dstat.pyRlUs

c
Csx|iD]}t|djoq
nx|iD]}|dd|jp|ddjoz|djomt|dt|dt|dt|dt|d	t|d
t|df|i|<q7q7Wq
Wx|iD]}xtd
D]}t|i|t|i|joUd|i|||i||t|i|t|i||i||<qd|i||<qWqWt	t
ijo|ii|indS(
NiiR(R}iiiiiiigY@(
RRYRRRRRRRtstepRvR;RB(RZRRlR((s/usr/share/dstat/dstat.pyR^s"

3u

'U(RyRzR`RRRlR(((s/usr/share/dstat/dstat.pyR1s
						tdstat_cpu24cBs5eZdZdZdZdZdZRS(cCs>d|_d|_d|_|idd|_d|_dS(	NRii"s
/proc/statRRR(susrssyssidl(RRRRRRx(RZ((s/usr/share/dstat/dstat.pyR`os			
	cGsg}x[|iD]M}t|djp|ddd!djoqn|i|ddqW|ix|D]}|i|quW|S(NiiiR((RRYRRU(RZRRRR((s/usr/share/dstat/dstat.pyRws
+
cCsg}tio
ti}nStip
d}n?g}d}x/|tjo!|it||d}q@Wx6|D].}||idgjo|i|qvqvW|S(NR}ii(stotal(RvR:RRRRMR(RZRRR(Rl((s/usr/share/dstat/dstat.pyRs 




cCsGg}x:|iD]/}|o|id|q|idqW|S(NR(s	cpu total(RR(RZRRl((s/usr/share/dstat/dstat.pyRls
c	CsKx|iD]}x|iD]}|dd|jp|ddjoS|djoFt|dt|dt|dt|df|i|<qqWq
Wxy|iD]n}xetdD]W}d|i|||i||t|i|t|i||i||<qWqWtt	i
jo|ii|indS(	NiR(R}iiiigY@(RRRRRRRRRRvR;RB(RZRRlR((s/usr/share/dstat/dstat.pyRs

3N

Y(RyRzR`RRRlR(((s/usr/share/dstat/dstat.pyRns
						t
dstat_diskcBs5eZdZdZdZdZdZRS(cCs>d|_tid|_|idd|_d|_dS(NRs(^(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)$s/proc/diskstatstreadtwriti(sreadR(Rtretcompilet
diskfilterRRRx(RZ((s/usr/share/dstat/dstat.pyR`s
	
	cGsg}xd|iD]V}t|djoqn|ddgdjoqn|d}|i|qWx|D]}|i|qtW|p
tdn|S(Ni
it0iis*No suitable block devices found to monitor(RRYRR(RZRRRRlR((s/usr/share/dstat/dstat.pyRs


cCsg}tio
ti}ntip
d}ng}g}tidD]}|tii|qK~}xL|iD]A}|ii	|oqwn||joqwn|i
|qwW|ixC|D];}||idgtii
jo|i
|qqW|S(NR}s/sys/block/*(stotal(RvR<RtglobRRtbasenameRRtmatchRRURJRT(RZRRt_[1]RtblockdevicesRl((s/usr/share/dstat/dstat.pyRs(



6


$cCs&g}|iD]}|d|q~S(Nsdsk/(R(RZRRl((s/usr/share/dstat/dstat.pyRlscCsx|iD]}d|i|<q
Wx|iD]}t|djoq.n|ddjo|ddjoq.n|d}|ddgdjoq.n|ii|pI|id	dt|d|id	d
t|df|id	<n||ijoV|d	joI|i|dt|d|i|d
t|df|i|<nx|iD]}|tii	jox}ti|D]j}t
id|d|oI|i|dt|d|i|d
t|df|i|<qqWqlqlWq.Wxn|ii	D]]}|i|d|i|dd
t|i|d
|i|d
d
tf|i
|<q Wttijo|ii|indS(Nii
iRi	iiiR}it^t$g@(ii(RRRRYRRRRvRJRTRRtelapsedRRR;RB(RZRlRRJR*((s/usr/share/dstat/dstat.pyRs:

"
II
Y%6(RyRzR`RRRlR(((s/usr/share/dstat/dstat.pyRs
				tdstat_disk24cBs5eZdZdZdZdZdZRS(cCs`d|_tid|_|idd|_|io|io
tdnd|_	dS(	NRs&(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)s/proc/partitionsRRs,Kernel is not compiled with CONFIG_BLK_STATSi(sreadswrit(
RRRRRRRRRRx(RZ((s/usr/share/dstat/dstat.pyR`s	
	
cGsg}xq|iD]c}t|djp,|ddjpt|dddjoqn|d}|i|qWx|D]}|i|qW|p
tdn|S(Niitmajoriiis*No suitable block devices found to monitor(RRYR-RR(RZRRRRlR((s/usr/share/dstat/dstat.pyRs
?

cCsg}tio
ti}n`tip
d}nLg}x8|iD]-}|ii|oqAn|i|qAW|ixC|D];}||idgtii	jo|i|qqW|S(NR}(stotal(
RvR<RRRRRRURJRT(RZRRRl((s/usr/share/dstat/dstat.pyRs"





$cCs,g}|iD]}|dt|q~S(Nsdsk/(Rt	sysfs_dev(RZRRl((s/usr/share/dstat/dstat.pyRlsc
Csx|iD]}d
|i|<q
Wx|iD]}t|djp,|ddjpt|dddjoq.n|d}|ii|pI|iddt|d|iddt|d	f|id<n||ijoI|i|dt|d|i|dt|d	f|i|<nx|iD]}|ti	i
jox}ti	|D]j}tid
|d|oI|i|dt|d|i|dt|d	f|i|<qmqmWqCqCWq.Wxn|ii
D]]}|i|d|i|ddt
|i|d|i|ddt
f|i|<qWttijo|ii|indS(NiiRiiiR}ii
RRg@(ii(RRRRYR-RRRRvRJRTRRRRRR;RB(RZRlRRJR*((s/usr/share/dstat/dstat.pyRs2

?
II
Y%6(RyRzR`RRRlR(((s/usr/share/dstat/dstat.pyRs
					tdstat_disk24oldcBs5eZdZdZdZdZdZRS(cCsPd|_tid|_|idd|_tid|_d|_dS(	NRs&(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)s
/proc/statRRs-^\((\d+),(\d+)\):\(\d+,\d+,(\d+),\d+,(\d+)\)$i(sreadswrit(RRRRRRtregexpRx(RZ((s/usr/share/dstat/dstat.pyR`+s	
	cGs g}x|idD]}t|djoqn|d}|djoqnxtidD]|}|ii|}|pqen|i}t|djoqentt|dt|d}|i	|qeWPqWx|D]}|i	|qW|p
t
dn|S(Nt:iitdisk_ioiis*No suitable block devices found to monitor(RRYRRORRtgroupstdevR-RR(RZRRRRltpairtmR((s/usr/share/dstat/dstat.pyR3s2

#
cCsg}tio
ti}n`tip
d}nLg}x8|iD]-}|ii|oqAn|i|qAW|ixC|D];}||idgtii	jo|i|qqW|S(NR}(stotal(
RvR<RRRRRRURJRT(RZRRRl((s/usr/share/dstat/dstat.pyRFs"





$cCs&g}|iD]}|d|q~S(Nsdsk/(R(RZRRl((s/usr/share/dstat/dstat.pyRlXscCsx|iD]}d|i|<q
Wx@|idD]/}t|djoq1n|d}|djoq1nx|idD]}|ii|}|pqn|i}t|djoqntt	|dt	|d}|i
i|pI|iddt|d|iddt|df|id<n||ijoV|djoI|i|dt|d|i|dt|df|i|<nx|iD]}|ti
ijox}ti
|D]j}tid	|d
|oI|i|dt|d|i|dt|df|i|<qqWqqWqWPq1Wxn|iiD]]}|i|d|i|ddt|i|d|i|ddtf|i|<qtWttijo|ii|indS(
NiRiRiiR}iRRg@(ii(RRRRYRORRRRR-RRRvRJRTRRRRRR;RB(RZRlRRRRRJR*((s/usr/share/dstat/dstat.pyR[sJ


#II
Y%6(RyRzR`RRRlR(((s/usr/share/dstat/dstat.pyR*s
				tdstat_epochcBseZdZdZRS(cCsHd|_d|_d|_tio
d|_nd|_d|_dS(NR5i
ii
(sepoch(RlRRRvRR(RZ((s/usr/share/dstat/dstat.pyR`zs			

	cCst|id<dS(NR5(t	starttimeR(RZ((s/usr/share/dstat/dstat.pyRs(RyRzR`R(((s/usr/share/dstat/dstat.pyRys	
tdstat_fscBseZdZdZRS(cCs1d|_d|_d|_d|_d|_dS(NRRiitfilestinodes(sfilesR(RlRRRR(RZ((s/usr/share/dstat/dstat.pyR`s
				cCsxQtdD]C}|i}t|djoq
nt|d|id<q
Wx_tdD]Q}|i}t|djoqant|dt|d|id<qaWdS(Ns/proc/sys/fs/file-nriiRs/proc/sys/fs/inode-nriR(RRORYRR(RZRR((s/usr/share/dstat/dstat.pyRs

(RyRzR`R(((s/usr/share/dstat/dstat.pyRs	t	dstat_intcBs5eZdZdZdZdZdZRS(cCsDd|_d|_d|_d|_|id|i|_dS(Nt
interruptsRiis
/proc/stat(RlRRRRtintmap(RZ((s/usr/share/dstat/dstat.pyR`s				
cCsh}xtdD]}|i}t|tjoqn|didd}di|tdid}|||<x$|D]}|||ii<qWqW|S(Ns/proc/interruptsiRRiR)(RRORYRRRtstriptlower(RZRRRtl1tl2Rl((s/usr/share/dstat/dstat.pyRs
 
cGsg}xw|iD]i}|ddjoqnxHt|dD]6\}}t|djo|it|qBqBWqW|S(Nitintrii
(RRRRRM(RZRRRRlR((s/usr/share/dstat/dstat.pyRs
c
Csg}tio
ti}ne|i}x,|D]$}|djo|i|q-q-Wtio!t|d	jo|d
}nxp|D]h}||idgjo|i|q|i|ii	jo|i|i|iqqW|S(
NRt1t2t8tNMItLOCtMIStCPU0iiR}(RRRRRRRR(
RvR=RtremoveRRYRRRRT(RZRRRl((s/usr/share/dstat/dstat.pyRs"

	
"cCsx|iD]}|p|ddjoq
nxC|iD]8}|djo%t|t|d|i|<q=q=Wt|d|id<q
Wx8|iD]-}|i||i|dt|i|<qWtt	i
jo|ii|indS(NiRR}iig?(RRRR-RRRRRRvR;RB(RZRRl((s/usr/share/dstat/dstat.pyRs


)
+(RyRzR`RRRR(((s/usr/share/dstat/dstat.pyRs
				tdstat_int24cBs5eZdZdZdZdZdZRS(cCs5d|_d|_d|_d|_|iddS(NRRiis/proc/interrupts(RlRRRR(RZ((s/usr/share/dstat/dstat.pyR`s
				cCsh}x|iD]}t|tjoqn|didd}di|tdid}|||<x$|D]}|||ii<q{WqW|S(NiRRiR)(RRYRRORRRR(RZRRRRRl((s/usr/share/dstat/dstat.pyRs
 
cGs~g}xq|iD]c}t|tdjoqn|didd}t|ddjo|i|qqW|S(NiiRi
(RRYRRORR(RZRRRRl((s/usr/share/dstat/dstat.pyRs
cCsg}tio
ti}ne|i}x,|D]$}|djo|i|q-q-Wtio!t|d
jo|d}nxi|D]a}||ijo|i|q|i|ii	jo|i|i|iqqW|S(
NRRRRRtERRRRRii(	RRRRsCPU0RsLOCsMISsNMI(
RvR=RRRRYRRRRT(RZRRRl((s/usr/share/dstat/dstat.pyRs"

	
"cCsx|iD]}t|tdjoq
n|didd}||ijoKd|i|<x;|ddt!D]$}|i|t||i|<qwWq
q
Wx>|iiD]-}|i||i|dt	|i
|<qWtti
jo|ii|indS(NiiRg?(RRYRRORRRRTRRRRRvR;RB(RZRRlR((s/usr/share/dstat/dstat.pyRs

*+(RyRzR`RRRR(((s/usr/share/dstat/dstat.pyRs
				tdstat_iocBs5eZdZdZdZdZdZRS(cCsPd|_d|_d|_tid|_|idd	|_d|_dS(
NR|iis&(dm-[0-9]+|md[0-9]+|[hs]d[a-z]+[0-9]+)s/proc/diskstatsRRi(sreadswrit(	RRRRRRRRRx(RZ((s/usr/share/dstat/dstat.pyR`#s			
	cGsg}xd|iD]V}t|djoqn|ddgdjoqn|d}|i|qWx|D]}|i|qtW|p
tdn|S(Ni
iRiis*No suitable block devices found to monitor(RRYRR(RZRRRRlR((s/usr/share/dstat/dstat.pyR,s


cCsg}tio
ti}ntip
d}ng}g}tidD]}|tii|qK~}xL|iD]A}|ii	|oqwn||joqwn|i
|qwW|ixC|D];}||idgtii
jo|i
|qqW|S(NR}s/sys/block/*(stotal(RvR<RRRRRRRRRRURJRT(RZRRRRRRl((s/usr/share/dstat/dstat.pyR8s(



6


$cCs&g}|iD]}|d|q~S(Nsio/(R(RZRRl((s/usr/share/dstat/dstat.pyRlLscCsx|iD]}d
|i|<q
Wx|iD]}t|djoq.n|ddjo|ddjoq.n|d}|ddgdjoq.n|ii|pI|iddt|d|idd	t|df|id<n||ijoV|djoI|i|dt|d|i|d	t|df|i|<nx|iD]}|tii	jox}ti|D]j}t
id
|d|oI|i|dt|d|i|d	t|df|i|<qqWqlqlWq.Wxn|ii	D]]}|i|d|i|ddt|i|d	|i|d	dtf|i
|<q Wttijo|ii|indS(Nii
iRiiiR}iRRg?(ii(RRRRYRRRRvRJRTRRRRRR;RB(RZRlRRJR*((s/usr/share/dstat/dstat.pyROs:

"
II
Y%6(RyRzR`RRRlR(((s/usr/share/dstat/dstat.pyR"s
					t	dstat_ipccBseZdZdZRS(cCs1d|_d|_d|_d|_d|_dS(	Nssysv ipcRii
tmsgtsemtshm(smsgRR(RlRRRR(RZ((s/usr/share/dstat/dstat.pyR`hs
				cCs?x8|iD]-}ttd|id|i|<q
WdS(Ns/proc/sysvipc/i(RRYRRR(RZRl((s/usr/share/dstat/dstat.pyRos
(RyRzR`R(((s/usr/share/dstat/dstat.pyRgs	t
dstat_loadcBseZdZdZRS(cCsGd|_d|_d|_d|_|idd|_d
|_dS(Nsload avgR|ig?s
/proc/loadavgt1mt5mt15mtload1tload5tload15(RRR(R	R
R(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`ts				
	cCszxs|iD]e}t|djoq
nt|d|id<t|d|id<t|d|id<q
WdS(NiiR	iR
iR(RRYRR(RZR((s/usr/share/dstat/dstat.pyR}s
(RyRzR`R(((s/usr/share/dstat/dstat.pyRss		t
dstat_lockcBseZdZdZRS(cCsGd|_d|_d|_d|_|idd|_d|_dS(Ns
file locksR|ii
s/proc/lockstpostlcktreatwritposixtflockRtwrite(R
RRR(sposixRsreadswrite(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`s				
	cCs
x|iD]}d|i|<q
Wx|iD]}t|djoq.n|ddjo|idd|id<n.|ddjo|idd|id<n|dd	jo|id
d|id
<q.|ddjo|idd|id<q.q.WdS(
NiiitPOSIXRtFLOCKRitREADRtWRITER(RRRRY(RZRlR((s/usr/share/dstat/dstat.pyRs

(RyRzR`R(((s/usr/share/dstat/dstat.pyRs		t	dstat_memcBseZdZdZRS(cCs,d|_|idd|_d|_dS(
Nsmemory usages
/proc/meminfotusedtbufftcachtfreetMemUsedtBufferstCachedtMemFree(RRRR(RRRR (RlRRR(RZ((s/usr/share/dstat/dstat.pyR`s	
	cCsxx|iD]j}t|djoq
n|didd}||idjot|dd|i|<q
q
W|id|id|id|id	|id
<dS(NiiRtMemTotalig@R RRR(R!(RRYRORRR(RZRRl((s/usr/share/dstat/dstat.pyRs
#(RyRzR`R(((s/usr/share/dstat/dstat.pyRs	t	dstat_netcBs5eZdZdZdZdZdZRS(cCs>|idd|_d|_tid|_d|_dS(Ns
/proc/net/devRtrecvtsends!^(lo|bond[0-9]+|face|.+\.[0-9]+)$i(R#ssend(RRRRRttotalfilterRx(RZ((s/usr/share/dstat/dstat.pyR`s

		cGsg}x|iddD]q}t|djoqn|ddjo|ddjoqn|d}|d
jo|i|qqW|ix|D]}|i|qW|S(NRRiiRi
itlotface(sloR'(RRYRRU(RZRRRRlR((s/usr/share/dstat/dstat.pyRs"


cCsg}tio
ti}n(tip
d}n|i}|ix9|D]1}||iddgjo|i|qKqKW|p
tdn|S(NR}R&s/No suitable network interfaces found to monitor(stotal(RvR>RRRURR(RZRRRl((s/usr/share/dstat/dstat.pyRs



	

cCs&g}|iD]}|d|q~S(Nsnet/(R(RZRRl((s/usr/share/dstat/dstat.pyRlscCsddg|id<x|iddD]}t|djoq&n|ddjo|ddjoq&n|d}||ijo+t|d	t|d
f|i|<n|ii|pI|iddt|d	|idd	t|d
f|id<q&q&Wtouxr|iiD]]}|i|d|i	|ddt
|i|d	|i	|d	dt
f|i|<q+Wntt
ijo|i	i|indS(NiR}RRiiRi
ii	g?(RRRYRRR%RRBRTRRRRRvR;(RZRRl((s/usr/share/dstat/dstat.pyRs&"
+M%:(RyRzR`RRRlR(((s/usr/share/dstat/dstat.pyR"s
				t
dstat_pagecBseZdZdZRS(cCs5d|_d|_|idd|_d	|_dS(
NtpagingRs/proc/vmstattintouttpswpintpswpout(sinsout(R,R-(RlRRRR(RZ((s/usr/share/dstat/dstat.pyR`s
		
	cCsxc|iD]U}t|djoq
n|d}||ijot|d|i|<q
q
Wx<|iD]1}|i||i|tdt|i|<qpWt	t
ijo|ii|indS(Niiig?(
RRYRRRRtpagesizeRRRRvR;RB(RZRRl((s/usr/share/dstat/dstat.pyRs


/(RyRzR`R(((s/usr/share/dstat/dstat.pyR(s	tdstat_page24cBseZdZdZRS(cCs5d|_d|_|idd|_d	|_dS(
NR)Rs
/proc/statR*R+R,R-(sinsout(spswpinspswpout(RlRRRR(RZ((s/usr/share/dstat/dstat.pyR`s
		
	cCsx{|iD]m}t|djoq
n|d}|djoq
nt|d|id<t|d|id<Pq
Wx<|iD]1}|i||i|tdt|i|<qWt	t
ijo|ii|indS(	NiiR3iR,iR-g?(
RRYRRRRR.RRRRvR;RB(RZRRl((s/usr/share/dstat/dstat.pyRs



/(RyRzR`R(((s/usr/share/dstat/dstat.pyR/s	t
dstat_proccBseZdZdZRS(cCsGd|_d|_d|_d|_|idd|_d
|_dS(NtprocsR|ii
s
/proc/stattruntblktnewt
procs_runningt
procs_blockedt	processes(srunR3snew(R5R6R7(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`s				
	cCswx|iD]}t|djoq
n|d}|djo(d|id<t|d|i|<q
|djo*|i|t|dd|i|<q
|djo&|i|t|d|i|<q
q
W|id|iddt|id<x*dD]"}|i|dt|i|<qWtti	jo5|ii
|ixd	D]}d|i|<qXWndS(
NiiR7iR5R6g?(s
procs_runnings
procs_blocked(s
procs_runnings
procs_blocked(RRYRRRRRRRvR;RB(RZRRl((s/usr/share/dstat/dstat.pyRs*




*
*' (RyRzR`R(((s/usr/share/dstat/dstat.pyR0
s		t	dstat_rawcBseZdZdZRS(cCsGd|_d|_d|_d|_|idd|_d|_dS(	NtrawRiids
/proc/net/rawtsockets(R9(R:(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`+s				
	cCs8d}x|iD]}|d}qW||id<dS(NiiR:(RR(RZtlinesR((s/usr/share/dstat/dstat.pyR4s

(RyRzR`R(((s/usr/share/dstat/dstat.pyR8*s		tdstat_socketcBseZdZdZRS(cCsGd|_d|_d|_d|_|idd|_d|_dS(NR:Riids/proc/net/sockstatttotttcptudpR9tfrgssockets:sTCP:sUDP:sRAW:sFRAG:(R=R>R?srawR@(ssockets:sTCP:sUDP:sRAW:sFRAG:(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`=s				
	cCsxI|iD];}t|djoq
nt|d|i|d<q
W|id|id|id|id|id|id	<dS(
Niiissockets:sTCP:sUDP:sRAW:sFRAG:tother(RRYRR(RZR((s/usr/share/dstat/dstat.pyRFs
(RyRzR`R(((s/usr/share/dstat/dstat.pyR<<s		t
dstat_swapcBs5eZdZdZdZdZdZRS(cCs,d|_d|_|idd|_dS(NR3Rs/proc/swapsRR(susedsfree(RlRRR(RZ((s/usr/share/dstat/dstat.pyR`Ms		
cGsg}x|iD]v}t|djoqn|ddjoqny t|dt|dWn
qnX|i|dqW|ix|D]}|i|qW|S(NiitFilenameii(RRYR-RRU(RZRRRR((s/usr/share/dstat/dstat.pyRSs$

cCsg}tio
ti}n(tip
d}n|i}|ix6|D].}||idgjo|i|qKqKW|p
tdn|S(NR}s)No suitable swap devices found to monitor(stotal(RvR?RRRURR(RZRRRl((s/usr/share/dstat/dstat.pyRcs



	

cCs,g}|iD]}|dt|q~S(Nsswp/(Rtimprove(RZRRl((s/usr/share/dstat/dstat.pyRltscCsddg|id<x|iD]}t|djp|ddjoq n|d}t|ddt|dt|ddf|i|<|idd|i|d|idd|i|df|id<q WdS(	NiR}iRCig@ii(RRRYR(RZRRl((s/usr/share/dstat/dstat.pyRws
$
=(RyRzR`RRRlR(((s/usr/share/dstat/dstat.pyRBLs
				t
dstat_swapoldcBseZdZdZRS(cCs5d|_d|_|idd|_d	|_dS(
NR3Rs
/proc/meminfoRRtSwapUsedtSwapFree(susedsfree(RFRG(RlRRRR(RZ((s/usr/share/dstat/dstat.pyR`s
		
	cCsxx|iD]j}t|djoq
n|didd}||id	jot|dd|i|<q
q
W|id|id|id<dS(
NiiRt	SwapTotalig@RGRF(RH(RRYRORRR(RZRRl((s/usr/share/dstat/dstat.pyRs
#(RyRzR`R(((s/usr/share/dstat/dstat.pyREs	t	dstat_syscBseZdZdZRS(cCsGd|_d|_d|_d|_|idd
|_d|_dS(NtsystemRiis
/proc/statR-tcswRtctxt(sintRK(sintrRL(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`s				
	cCsxc|iD]U}t|djoq
n|d}||ijot|d|i|<q
q
Wx8|iD]-}|i||i|dt|i|<qpWtt	i
jo|ii|indS(Niiig?(RRYRRRRRRRRvR;RB(RZRRl((s/usr/share/dstat/dstat.pyRs


+(RyRzR`R(((s/usr/share/dstat/dstat.pyRIs		t	dstat_tcpcBseZdZdZRS(cCsJd|_d|_d|_d|_|iddd|_d|_dS(Nstcp socketsRiids
/proc/net/tcps/proc/net/tcp6tlistacttsynttimtclotlistentestablishedtwaittclose(RNRORPRQRR(RSRTRPswaitsclose(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`s					c	Cs7x|iD]}d|i|<q
Wx|iD]}t|djoq.n|ddjo|idd|id<q.|ddjo|idd|id<q.|ddjo|idd|id<q.|ddjo|idd|id<q.|ddjo|idd|id<q.q.WdS(Niiit0ARSit01RTt02t03t09RPt06RUt04t05t07t08t0BRV(RW(RX(RYRZR[(R\(R]R^R_R`Ra(RRRRY(RZRlR((s/usr/share/dstat/dstat.pyRs"

(RyRzR`R(((s/usr/share/dstat/dstat.pyRMs		t
dstat_timecBseZdZdZRS(cCsd|_tidpd|_d|_tio,tti	|iti
d|_n%tti	|iti
|_d|_d	|_
d
|_dS(NRJt
DSTAT_TIMEFMTs%d-%m %H:%M:%Stsiis	date/timeR4(s	date/time(stime(RlRRpttimefmtRRvRRYR4tstrftimet	localtimeRRRR(RZ((s/usr/share/dstat/dstat.pyR`s		
,$		cCsrtio?ti|ititdttdd|id<n&ti|itit|id<dS(Ns.%03diR4(	RvRR4RfReRgRRR(RZ((s/usr/share/dstat/dstat.pyRs
?(RyRzR`R(((s/usr/share/dstat/dstat.pyRbs	
t	dstat_udpcBseZdZdZRS(cCsJd|_d|_d|_d|_|iddd|_d|_dS(
NR?Riids
/proc/net/udps/proc/net/udp6RNRORSRT(slissact(slistensestablished(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`s					cCsx|iD]}d|i|<q
Wxn|iD]`}|ddjo|idd|id<q.|ddjo|idd|id<q.q.WdS(NiiR_RSiRXRT(RRR(RZRlR((s/usr/share/dstat/dstat.pyRs

(RyRzR`R(((s/usr/share/dstat/dstat.pyRhs		t
dstat_unixcBseZdZdZRS(cCsGd|_d|_d|_d|_|idd|_d|_dS(Nsunix socketsRiids/proc/net/unixtdgmRMRNROtdatagramtstreamRSRT(Rjsstrslissact(Rksstreamslistensestablished(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`s				
	cCsx|iD]}d|i|<q
Wx|iD]}|ddjo|idd|id<q.|ddjov|idd|id<|dd	jo|id
d|id
<q|ddjo|idd|id<qq.q.WdS(
Niit0002Rkit0001RliRXRSRZRT(RRR(RZRlR((s/usr/share/dstat/dstat.pyRs

(RyRzR`R(((s/usr/share/dstat/dstat.pyRis		tdstat_vmcBseZdZdZRS(cCsGd|_d|_d|_d|_|idd|_d|_dS(Nsvirtual memoryRiis/proc/vmstattmajpftminpftallocRt
pgmajfaulttpgfaulttpgalloc_normaltpgfree(RpRqRrsfree(RsRtRuRv(RlRRRRRR(RZ((s/usr/share/dstat/dstat.pyR`s				
	cCsxd|iD]V}t|djoq
n|d|ijoq
nt|d|i|d<q
Wx8|iD]-}|i||i|dt|i|<qqWtt	i
jo|ii|indS(Niiig?(RRYRRRRRRRRvR;RB(RZRRl((s/usr/share/dstat/dstat.pyRs

+(RyRzR`R(((s/usr/share/dstat/dstat.pyRos		stblackstdarkredst	darkgreenst
darkyellowstdarkbluestdarkmagentastdarkcyanstgraystdarkgraystredstgreenstyellowstbluestmagentastcyanstwhitestblackbgstredbgstgreenbgstyellowbgstbluebgst	magentabgstcyanbgstwhitebgstresetstboldstreversest	underlinestclearst	clearlines7tsaves8trestorestlinewrapst
nolinewrapstupstdownstrightstleftt|RRRt>RRRRRt+tplusc
CsBtiohtdd6tdtdd6tdd6tdd6tdtd	d
6tdd6tdd
6tdd6tdd6tdd6tdd6tdd6tdtdtdtdtdtdtdtdfd6tdtdtdtdtdtdtdtdfd6}nhtdd6tdtdd6tdd6tdd6tdtd	d
6tdd6tdd
6tdd6tdd6tdd6tdd6tdd6tdtdtdtdtdtdtdtdfd6tdtd tdtdtdtdtdtdfd6}|S(!NR{RR}RRRRRRRLt	roundtripRxRRtinputRwttext_lottext_hitunit_lotunit_hiR|RyR~RRt	colors_loRRRt	colors_hiRRz(RvRtansi(R((s/usr/share/dstat/dstat.pyt	set_themeHsH
#*#&cCsyXxQtdddiD]7}|i}t|djoqnt|dSWWntxntdiD]V}|i}t|djoqqn|ddjotit|dSqqWnXdS(	s)Return the number of 'ticks' since bootups/proc/uptimetriis
/proc/stattbtimeiN(RRRORYRRR4R(RR((s/usr/share/dstat/dstat.pytticksqscCsR|ido|idd}n(|ido|idd}n|S(sImprove a device names/dev/mapper/Rais/dev/i(RXRO(tdevname((s/usr/share/dstat/dstat.pyRDs
cCstii|ptd|ndtijo
hanttijot|ddt|<nt|i	dt|S(s@Open a file for reuse, if already opened, return file descriptorsFile %s does not existtfdsRi(
RRRbRtglobalsRTRRRR(R((s/usr/share/dstat/dstat.pyRs
cCsJdtijo
han|tjot|it|=ndS(s7Close an open file and remove file descriptor from listRN(RRTRRV(R((s/usr/share/dstat/dstat.pytdcloses


cCsddk}ddk}dtijo
han|tijo_|i|i|ddd|id|id|id	t}|i	|i
|ift|<nt|S(
s6Open a pipe for reuse, if already opened, return pipesiNtpipestbufsizeitstdinRHRQt	close_fds(t
subprocesstshlexRRTRtPopenROtPIPER@RRHRQ(tcmdRRR((s/usr/share/dstat/dstat.pytdpopens
				 gMbP?cCsd}x+ti|iggg|dpq	Wx>ti|iggg|do||id}q7W|idS(s7Read available data from pipe in a non-blocking fashionRiis
(tselecttfilenoRRO(tfileobjttmoutR((s/usr/share/dstat/dstat.pytreadpipes&&cCsd}x+ti|iggg|dpq	Wxpti|iggg|doI|id}|djo||}q7|i|o|Sd}q7Wtio
tdndS(s7Grep available data from pipe in a non-blocking fashionRiis
s-Nothing found during greppipe data collectionN(RRRRXRvRRR9(RRMRRt	character((s/usr/share/dstat/dstat.pytgreppipes&&


cCsd}ti|}x+ti|iggg|dpqWxpti|iggg|doI|id}|djo||}qF|i|o|Sd}qFWtio
tdndS(s8Match available data from pipe in a non-blocking fashionRiis
s.Nothing found during matchpipe data collectionN(
RRRRRRRvRRR9(RtstringRRRR((s/usr/share/dstat/dstat.pyt	matchpipes &&


cCsid}xVtoHttt|}t||joPn||}|d}q	Wd}||fS(s/Convert decimal to string given base and lengthiii(R@RMRRRY(RRtbasetcR((s/usr/share/dstat/dstat.pytdchgs
cCsd}x
to|djotd}Pnttt||}t||jo|t|d}x||djoVd||}t||jo'|ttt||joPn|d}qsWttt|}Pn||}|d}q	Wd}||fS(s.Convert float to string given scale and lengthiRis%%.%dfi(R@RMRRRY(RRRRRR((s/usr/share/dstat/dstat.pytfchgs*

5
cCsBd}}x1|D])}||t||||}d}qW|S(s Return all columns color printedRR(R(RRRRRRR((s/usr/share/dstat/dstat.pyRs

R|iic
	Cs}d}|djo
d}nt}|d"jo-|tt|jot}|d}n|djoJ|o"tddi|dtdStddi|tdSn|djo
d#}nd$}ttijo"td}td}td}	ntd}td}td}	ti	o)|d%jot
|||\}
}ntio)|d&jot|||\}
}n|d'jot
|||\}
}n|djot|||\}
}nb|djot||}
}n>|djo#d|d|df|}
}nt
d||
d jo
|	}n|djo
|}n|d(jo"|t||t|}na|djo(|tt||t|}n,|d)jo||t|}n|}|d*jo||
i|}
n||
i|}
|oD|d!jo)t|djo|
|	||7}
qy|
d7}
n|
S(+sColor print one columniiiiRLRRRtBtktMtGtTtPtEtZtYRRRRRRRRR|Rdtts%2dh%02di<sType %s not known to dstat.Ri(ii(	RRRRRRRRR(	RRRRRRRRR(RRR|(RRR|(RR(ii(RR|(Rd(R7RYRMR@RtrjustRRvR;RRRRRR-Rtljust(
RRRRRtunittunitstcolorstctexttcunitRRRA((s/usr/share/dstat/dstat.pyRsj

&
"!










#





"
(

 cCsd}xp|D]h}||i7}||dj	o|tdtd7}q
||jo|tdtd7}q
q
W|d7}xp|D]h}||i7}||dj	o|tdtd7}q||jo|tdtd7}qqW|dS(	NRiRRRRs
R(RRRR(RRRto((s/usr/share/dstat/dstat.pyRCUs"


cCsd}x=|D]5}||i}||dj	o|d}q
q
W|d7}x=|D]5}||i}||dj	o|d}qWqWW|dS(NRiR)s
(RR(RRR((s/usr/share/dstat/dstat.pyt	csvheaderhs
cCsti|IJdS(sOutput info messageN(RRQ(tlevelRM((s/usr/share/dstat/dstat.pytinfowscCsti|IJt|dS(s#Print error and exit with errorcodeN(RRQRN(RRM((s/usr/share/dstat/dstat.pytdie|s
cCs}y/ddkaddkaddkatiWnAy*titidtidfWnqyXdanXdadS(	sInitialise terminaliNR;Rxii(Ni(Ni(	tfcntltstructttermiost
TIOCGWINSZtcursest	setuptermttigetnumR9ttermsize(((s/usr/share/dstat/dstat.pytinitterms$
 
c	CstdpytddjoQtiddddd}titiiti	|}ti
d|d Stddjo'titi
dti
dfSttidttidfaWqdaqXntS(s$Return the dynamic terminal geometryiitHHHHiR;RxtLINEStCOLUMNSiiP(iiP(RRtpackRtioctlRRHRRRtunpackRRRR-Rtenviron(Rdtx((s/usr/share/dstat/dstat.pyRqs!
*cCsl|oatiioQy5ddk}|i|iddjotSWqhtidIJtSXn|S(NiRis:Color support is disabled, python-curses is not installed.(RRHRIRRRR7RQ(RAR((s/usr/share/dstat/dstat.pyRos
	
	cCs&|ddjotii|S|S(NiRat.(RaR(RRR(Rl((s/usr/share/dstat/dstat.pyRscCsd}ytd|iid}t|d}|djot|d}n|ido+t|d
}|idoqn|pnWnt|}nX|S(Ns/proc/%s/cmdlinetitbashtcshtkshtperltpythontrubytshiRi(RRRRspythonRR(R9RRRORRX(tpidRlRtcmdline((s/usr/share/dstat/dstat.pytgetnamebypids
cCs`d}x<tdiD](}|dd!djo|d}qqW|djo
dn|S(s'Return the number of CPUs in the systemis
/proc/statiiR(is)Problem finding number of CPUs in system.(RR(RR((s/usr/share/dstat/dstat.pyRrs

cCstid|}|oG|i}t|ddt|d}dttd|Stid|}|odS|S(	s,Convert sysfs device names into device namess8ide/host([0-9])/bus([0-9])/target([0-9])/lun([0-9])/disciiithdtatplaceholdertsdX(RRRR-tchrtord(tdeviceRRtnr((s/usr/share/dstat/dstat.pyRs"cCsdg}dddddddd	d
dg
}dg}d
dddddddddddddddg}dg}ddd d!d"d#d$d%g}d&g}d'g}	d(g}
||joTttd)|i|d*|d*}|d*}|p	d+|Sd,||fS||joTttd)|i|d-|d.}|d.}|p	d/|Sd0||fS||
jo	d1|S||jo	d2|S||jo	d3|S||jo	d4|S||	joD|	i|d*|d*}|d*}|p	d5|Sd6||fS||joK|i|}
|d*}|d*}|pd7|
|fSd8|
||fS||joD|i|d*|d*}|d*}|p	d9|Sd:||fSd;||fSd<S(=s+Convert major/minor pairs into device namesiiii!i"i8i9iXiYiZi[iiiAiBiCiDiEiFiGiiiiiiiii	iHiIiJiKiLiMiNiOibihiRissd%sssd%s%dii@shd%sshd%s%dsdm-%dsmd%dsloop%dsram%dsc0d%dsc0d%dp%dsida%d-%dsida%d-%d-%dsubd%dsubd%d-%dsdev%d-%dN(RRR
(tmajtmintramtidetlooptscsitmdtidatubdtccisstdmtdisctparttcont((s/usr/share/dstat/dstat.pyRsb	$	6				
+
	
+
	
	
	
	
	

	




	cCs%tiitdti|dS(NR(RRHRRRN(R((s/usr/share/dstat/dstat.pyRN/scCsg}tid}xEtD]:}|ido$|i|i|idqqWtid}x[tiD]P}xGt	i	|dD]2}|i|i|idi
ddqWqvW|i|S(Nsdstat_(.+)$tdstat_is.+/dstat_(.+).py$s/dstat_*.pyt_R(RRRRXRRRRRRRRU(RGtremodRR((s/usr/share/dstat/dstat.pyRF3s
(
4
cCst\}}dGtid}g}xQtD]F}|ido0|i|i|ididdq2q2W|i	|d}xh|D]`}|t
|d}|djod	G|t
|d
}n||djo|dGqqW|GHtid
}xtiD]}g}xGt
i
|dD]2}|i|i|ididdq9W|pqn|i	|d}dtii|Gxh|D]`}|t
|d}|djod	G|t
|d
}n||djo|dGqqW|GHqWdS(Nsinternal:
	sdstat_(.+)$RiRRiis
	i
iR)s.+/dstat_(.+).py$s/dstat_*.pys%s:
	(RqRRRRXRRRRRURYRRRRtabspath(RwRxRRGRtcols2tmodR((s/usr/share/dstat/dstat.pyRV@sP
4



0


cBseiaeaeidad}ei	}ei
d}eii
deiioeid}eid}|djoc|o\eidi|oCeii
d||eiieid	d
ieifqneeie_eioeiieio&eeidd	ati
dn4eeid
d	ati
deti
dti
d||fti
dd
ieie i!de i"fnei#o{y<eei#d
d	}|i
e$ei%|i&WqXe'j
o,}ei(dei#I|IJe)e_#qXXneipqe)e_*xt+i,D]}dt+|<qxWxt-i,D]}dt-|<qWt+dft-d<t+dft-d<nei*p
ei.}nd	}ga/x2ei0D]'}	|	d;joe1e2d	n}|	djo
d<}
nf|	djo
d=}
nO|	djo
d>}
n8|	d!jo
d?}
n!|	d#jo
d@}
n
|	f}
x|
D]x}d%|i3d&d'}y|e4i,jod(dk5}
|
i6|\}}}|d	d)joe7|d*|dUq}|d	d+jod,|dUd-|dUq}ei(d.|IJn
d/|dUWne'j
ot}||
d(joei(d0||fIJn&ei8oei(d1||fIJnei8d2joqqnX||i9d}t/i:|PqWqWt/pe;d3d4nei8onxkt/D]_}d5Ge<|d6o|i=Gne$|i>i?d7dGe<|d8od9G|i@GnHqTWneioti
eAt/neBiCe i e iD}e i aEd	a*d	aFxjt*ei.eiGjpeiGd(joB|iHtEt*deIt*f|iJeiiKt*|a*qWei*oeii
d:ndS(ANRjistXTERM_SHELLRis	/bin/bashs(screen*|xterm*)s]0;(%s@%s) %s %siRRs

tws"Dstat %s CSV output"
s["Author:","Dag Wieers <dag@wieers.com>",,,,"URL:","http://dag.wieers.com/home-made/dstat/"
s"Host:","%s",,,,"User:","%s"
s'"Cmdline:","dstat %s",,,,"Date:","%s"

s%d %b %Y %H:%M:%S %ZsFailed to create pidfile %sRRRRR RR(tcpu24R*tdisk24t	disk24oldR-tint24R,tpage24R3tswapoldRRRis.pysQo = dstat_plugin(); o.filename = "%s"; o.check(); o.prepare(); del(dstat_plugin);s.sos	import %ss%o = %s.new(); o.check(); o.prepare();sModule %s is of unknown type.s!o = %s(); o.check(); o.prepare();sModule %s failed to load. (%s)s.Module %s failed to load, trying another. (%s)iis-None of the stats you selected are available.tModuleRRRtrequiress
(slistshelp(scpuR(sdiskRR(sintR(spageR(sswapR(LRsRtR.RrRRRuthztgetpasstgetuserRnRRHRRIRpRRRRRtargvRRRvR6RoRARDRbRt
outputfileRkR4RfRgRERMtgetpidRVRRQR7RBRRTRR;RRGRVRNRRtimptfind_moduletexecfileRRRRthasattrRt	__class__RORRtschedt	schedulertsleeptinittimetmissedR8tenterabstperformR2tflush(tintervaltuserthostnametshellttermREtetkeyt	linewidthtpluginR!Rt
pluginfileR(RtpathnametdescriptionRR.((s/usr/share/dstat/dstat.pytmainds	-G

9

	















	


	
	
'


cCsNtia|dtitia|dtidatip
d}n+tdjp
tdjo
dand}tdjo$tt|djot	da	dStdjo+t
ad\aa
gagatantatiiot
}t\aa
|t
joqgaxhtD]\}||id}|t
jpttd jo$|t
joti||}q%q%WntioTtdjoGttjo
taqtdjottddjo
taqntantattijotdtd<ntdtd<d	}tio[tdjo/|djo"d
tdtdtd}qtdjotd
}qntoTtdjottjotidIJntatii|ttt}n|}d	}xtD]}|i |tjo$||i!|i"tt}nti#o4ttijo$||i$|i%tt}qqWtii|tdti#o%ttijot&i|d
ntiottitdatdjottantidjo-tiidtdtttdfqtidjo:tiidtdtttdtttdfqtidjo=tiidtdtttdtt|tdfqnt	djo@tiidtddt't	ddtdda	ntiptiid
ndS(NiiiiiRRRRs
RRRs*Terminal width too small, trimming output.Rg@@s%s%6.2fms%sRis%s%6.2f %s%d:%d%sRs%s%6.2f %s%d:%d:%d%sRRLsmissed s ticks(ii((R4RRvR;RRRt	totaltimeR0R1RRRwRxRt
oldvislistR@t
showheaderRRHRIRqRRRRCRRRBRQR7RRRRRDRRR&RM(RBtcurwidthtoldcolsRtnewwidthtnewlineRtoline((s/usr/share/dstat/dstat.pyR3	s


"

	

+


"

"


$(

-:A
6

t__main__s
(dt
__future__RRkRRRRR4R-RRRsR#RRRt
expanduserRReR%tKeyboardInterruptR:tversion_infoRNR@R7t	NameErrorRRRR{RRRRRRRRRRRRRRRR"R(R/R0R8R<RBRERIRMRbRhRiRoRRRRRDRRRRRRRRRRRCRRRRRqRoRRRrRRRFRVRAR3RyRvRBRHRRERbRR(((s/usr/share/dstat/dstat.pyt<module>s*
	<<-
,



=8CAOBFE;3

	)							
		O						
					J		
	$		v
	
 

Youez - 2016 - github.com/yon3zu
LinuXploit