<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[找了段韩国人写的PHP，哈哈]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sat, 31 Jul 2010 10:10:09 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	找了段韩国人写的PHP，哈哈<br/><div class="code">&lt;?php<br/>##&nbsp;&nbsp;시스템 정보 출력 ########################################<br/>##<br/>##&nbsp;&nbsp;작성자&nbsp;&nbsp;&nbsp;&nbsp;: 김칠봉&#91;닉:산이&#93; &lt;san2(at)linuxchannel.net&gt;<br/>##&nbsp;&nbsp;스크립트 명 : PHP를 이용한 시스템 정보를 출력하는 스크립트<br/>##<br/>#############################################################<br/>##<br/>## 주)<br/>## 사용상 부주의로 인한 피해는<br/>## 본 작성성자에게 어떠한 보증이나 책임이 없습니다.<br/>##<br/>##############################################################<br/><br/>##############################################################<br/>##<br/>## speed up `for()&#039;<br/>##&nbsp;&nbsp;1) not good : for($i=0; $i&lt;count($tmp=@file(&#039;file&#039;)); $i++)<br/>##&nbsp;&nbsp;2) good : $tmp=@file(&#039;file&#039;); for($i=0; $i&lt;count($tmp); $i++)<br/>##<br/>##############################################################<br/><br/>class sysinfo_common<br/>&#123;<br/>&nbsp;&nbsp;## 파일 크기 출력 함수<br/>&nbsp;&nbsp;## $bfsize 변수는 bytes 단위의 크기임<br/>&nbsp;&nbsp;##<br/>&nbsp;&nbsp;function file_hsize($bfsize, $sub=0)<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;$BYTES = number_format($bfsize).&#039; Bytes&#039;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if($bfsize &lt; 1024) return $BYTES;<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if($bfsize &lt; 1048576) $bfsize = number_format(round($bfsize/1024)).&#039; KB&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;else if($bfsize &lt; 1073741827) $bfsize = number_format(round($bfsize/1048576)).&#039; MB&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;else $bfsize = number_format($bfsize/1073741827,1).&#039; GB&#039;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if($sub) $bfsize .= &quot;($BYTES)&quot;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return $bfsize;<br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;function get_title()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $_SERVER, $_ENV; // for PHP/4.0.x<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!$hostname&#91;0&#93; = $_ENV&#91;&quot;HOSTNAME&quot;&#93;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123; $hostname = @file(&#039;/proc/sys/kernel/hostname&#039;); &#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return $_SERVER&#91;&#039;HTTP_HOST&#039;&#93;.&#039; (&#039;.$hostname&#91;0&#93;.&#039;)&#039;;<br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;function get_mem()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!$mem = @file(&#039;/proc/meminfo&#039;)) return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$get = array();<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if(preg_match(&#039;/^Mem:/&#039;,$mem&#91;1&#93;)) // Linux/2.2.x/2.4.x<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list($null,$get&#91;&#039;total&#039;&#93;,$get&#91;&#039;used&#039;&#93;,$get&#91;&#039;free&#039;&#93;,$get&#91;&#039;shared&#039;&#93;,$get&#91;&#039;buffered&#039;&#93;,$get&#91;&#039;cached&#039;&#93;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= preg_split(&#039;/&#92;s+/&#039;,$mem&#91;1&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list($null,$get&#91;&#039;swaptotal&#039;&#93;,$get&#91;&#039;swapused&#039;&#93;,$get&#91;&#039;swapfree&#039;&#93;) = preg_split(&#039;/&#92;s+/&#039;,$mem&#91;2&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125; else // Linux/2.6.0-test<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$map = array(&#039;MemTotal:&#039;=&gt;&#039;total&#039;,&#039;MemFree:&#039;=&gt;&#039;free&#039;,&#039;Buffers:&#039;=&gt;&#039;buffered&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;Cached:&#039;=&gt;&#039;cached&#039;,&#039;SwapTotal:&#039;=&gt;&#039;swaptotal&#039;,&#039;SwapFree:&#039;=&gt;&#039;swapfree&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;kB&#039;=&gt;1024,&#039;B&#039;=&gt;1,&#039;mB&#039;=&gt;1048576,&#039;MB&#039;=&gt;1048576);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mem = preg_grep(&#039;/^(?:MemTotal&#124;MemFree&#124;Buffers&#124;Cached&#124;SwapTotal&#124;SwapFree):/&#039;,$mem);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($mem AS $v)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$n = preg_split(&#039;/&#92;s+/&#039;,$v);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$mkey = $map&#91;$n&#91;0&#93;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$multipli = $map&#91;$n&#91;2&#93;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;$mkey&#93; = $n&#91;1&#93; * $multipli;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;used&#039;&#93; = $get&#91;&#039;total&#039;&#93; - $get&#91;&#039;free&#039;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;freepercent&#039;&#93; = @round(($get&#91;&#039;free&#039;&#93;/$get&#91;&#039;total&#039;&#93;)*100); // 여유 메모리 퍼센트<br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;usedpercent&#039;&#93; = 100 - $get&#91;&#039;freepercent&#039;&#93;; // 사용한 메모리 퍼센트<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;// 2001.03.18일 추가(실제 사용량 계산)<br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;totalfree&#039;&#93; = $get&#91;&#039;free&#039;&#93; + $get&#91;&#039;buffered&#039;&#93; + $get&#91;&#039;cached&#039;&#93;; // 실제 남은 메모리<br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;totalused&#039;&#93; = $get&#91;&#039;total&#039;&#93; - $get&#91;&#039;totalfree&#039;&#93;; // 실제로 사용한 메모리<br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;totalfreepercent&#039;&#93; = @round(($get&#91;&#039;totalfree&#039;&#93;/$get&#91;&#039;total&#039;&#93;)*100); // 실제 남은 메모리 퍼센트<br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;totalusedpercent&#039;&#93; = 100 - $get&#91;&#039;totalfreepercent&#039;&#93;;&nbsp;&nbsp;// 실제 사용한 메모리 퍼센트<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;//2001.02.26일 추가<br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;bufferedpercent&#039;&#93; = @round(($get&#91;&#039;buffered&#039;&#93;/$get&#91;&#039;total&#039;&#93;)*100); // 버퍼메모리 퍼센트<br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;cachedpercent&#039;&#93; = @round(($get&#91;&#039;cached&#039;&#93;/$get&#91;&#039;total&#039;&#93;)*100); // 캐쉬메모리 퍼센트<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;swapfreepercent&#039;&#93; = @round(($get&#91;&#039;swapfree&#039;&#93;/$get&#91;&#039;swaptotal&#039;&#93;)*100); // 스왑 여유 공간 퍼센트<br/>&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;&#039;swapusedpercent&#039;&#93; = 100 - $get&#91;&#039;swapfreepercent&#039;&#93;; // 사용한 스왑 퍼센트<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;// 보정<br/>&nbsp;&nbsp;&nbsp;&nbsp;foreach(array(&#039;total&#039;,&#039;free&#039;,&#039;used&#039;,&#039;buffered&#039;,&#039;cached&#039;,&#039;totalfree&#039;,&#039;totalused&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;swaptotal&#039;,&#039;swapfree&#039;,&#039;swapused&#039;) AS $k)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$get&#91;$k&#93; = $this-&gt;file_hsize($get&#91;$k&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return $get;<br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;function get_part()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;## 각 파티션(FS)와 마운트 포인트 계산<br/>&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;$mounts = @file(&#039;/proc/mounts&#039;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;for($i=0; $i&lt;count($mounts); $i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(preg_match(&#039;/ext&#91;23&#93;&#124;vfat&#124;ntfs&#124;reiserfs&#124;xfs&#124;jfs/&#039;,$mounts&#91;$i&#93;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list($p&#91;&#039;dev&#039;&#93;&#91;&#93;,$p&#91;&#039;mount&#039;&#93;&#91;&#93;,$p&#91;&#039;efs&#039;&#93;&#91;&#93;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= preg_split(&#039;/&#92;s+/&#039;, $mounts&#91;$i&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$num = count($p&#91;&#039;dev&#039;&#93;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;## 각 파티션 사용량 계산<br/>&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;@exec(&#039;/bin/df -k 2&gt;/dev/null&#039;,$df); // KB 단위로 출력, $df는 배열<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if($df)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unset($p&#91;&#039;dev&#039;&#93;); // change partition name<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for($i=1; $i&lt;count($df); $i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(preg_match(&#039;;^/dev/;&#039;,$df&#91;$i&#93;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list($p&#91;&#039;dev&#039;&#93;&#91;&#93;,$size,$used,$avail,$percent)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= preg_split(&#039;/&#92;s+/&#039;,$df&#91;$i&#93;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## 각 파티션 used %<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$percent = (int)$percent;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;percent&#039;&#93;&#91;&#93; = $percent;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;percent_avail&#039;&#93;&#91;&#93; = 100 - $percent;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## 각 파티션 크기<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$size = $size * 1024; // for PHP/4.3.2 bug ?<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;size&#039;&#93;&#91;&#039;sum&#039;&#93; += $size; // Byte 단위로 환산<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;size&#039;&#93;&#91;&#93; = $this-&gt;file_hsize($size);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## 각 파티션 사용한 용량<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$used = $used * 1024; // for PHP/4.3.2 bug ?<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;used&#039;&#93;&#91;&#039;sum&#039;&#93; += $used;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;used&#039;&#93;&#91;&#93; = $this-&gt;file_hsize($used);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## 각 파티션 여유 용량<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$avail = $avail * 1024; // for PHP/4.3.2 bug ?<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;avail&#039;&#93;&#91;&#039;sum&#039;&#93; += $avail;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;avail&#039;&#93;&#91;&#93; = $this-&gt;file_hsize($avail);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;fix&#039;&#93; = &#039;* 합계가 정확하게 맞지 않은 이유는 약 &#039;.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;file_hsize($p&#91;&#039;size&#039;&#93;&#91;&#039;sum&#039;&#93; - $p&#91;&#039;used&#039;&#93;&#91;&#039;sum&#039;&#93; - $p&#91;&#039;avail&#039;&#93;&#91;&#039;sum&#039;&#93;).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;(각 파티션 합) 정도를 시스템이 미리 확보했기 때문입니다.&#039;;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;percent&#039;&#93;&#91;&#039;total&#039;&#93; = @round($p&#91;&#039;used&#039;&#93;&#91;&#039;sum&#039;&#93;*100/$p&#91;&#039;size&#039;&#93;&#91;&#039;sum&#039;&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;percent_avail&#039;&#93;&#91;&#039;total&#039;&#93; = 100 - $p&#91;&#039;percent&#039;&#93;&#91;&#039;total&#039;&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;size&#039;&#93;&#91;&#039;sum&#039;&#93; = $this-&gt;file_hsize($p&#91;&#039;size&#039;&#93;&#91;&#039;sum&#039;&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;used&#039;&#93;&#91;&#039;sum&#039;&#93; = $this-&gt;file_hsize($p&#91;&#039;used&#039;&#93;&#91;&#039;sum&#039;&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;avail&#039;&#93;&#91;&#039;sum&#039;&#93; = $this-&gt;file_hsize($p&#91;&#039;avail&#039;&#93;&#91;&#039;sum&#039;&#93;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## last check partitions number<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$cnt = count($p&#91;&#039;dev&#039;&#93;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*** good idea, but unnecessary<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## check chroot enviroments<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($num &gt; $cnt)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123; for($i=$cnt; $i&lt;$num; $i++) $p&#91;&#039;size&#039;&#93;&#91;$i&#93; = &#039;NA&#039;; &#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;***/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;## change partitions number<br/>&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;$p&#91;&#039;dev&#039;&#93;&#91;&#039;num&#039;&#93; = $cnt ? $cnt : $num;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return $p;<br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;## support S/390, 2002.10.23<br/>&nbsp;&nbsp;##<br/>&nbsp;&nbsp;function get_proc_part()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!$part = @file(&#039;/proc/partitions&#039;)) return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;## disk block table<br/>&nbsp;&nbsp;&nbsp;&nbsp;## /usr/src/linux/Documentations/devices.txt<br/>&nbsp;&nbsp;&nbsp;&nbsp;## major =&gt; &#039;type&#039;,&#039;name&#039;,&#039;minor&#039;<br/>&nbsp;&nbsp;&nbsp;&nbsp;##<br/>&nbsp;&nbsp;&nbsp;&nbsp;$ddtable = array(<br/>&nbsp;&nbsp;&nbsp;&nbsp;3 =&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// First MFM, RLL and IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;8 =&gt; array(&#039;scsi&#039;,&#039;SCSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// SCSI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;9 =&gt; array(&#039;raid&#039;,&#039;RAID&#039;,1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Metadisk (RAID) devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;13=&gt; array(&#039;ide&#039;,&#039;XT-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 8-bit MFM/RLL/IDE controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;14=&gt; array(&#039;bios&#039;,&#039;BIOS&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// BIOS harddrive<br/>&nbsp;&nbsp;&nbsp;&nbsp;21=&gt; array(&#039;acorn&#039;,&#039;Acorn-MFM&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;// Acorn MFM hard drive interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;22=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Second IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;28=&gt; array(&#039;acsi&#039;,&#039;ACSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// ACSI disk (68k/Atari)<br/>&nbsp;&nbsp;&nbsp;&nbsp;33=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Third IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;34=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Fourth IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;36=&gt; array(&#039;mca&#039;,&#039;MCA-ESDI&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;// MCA ESDI hard disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;45=&gt; array(&#039;ide&#039;,&#039;PP-IDE&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Parallel port IDE disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;47=&gt; array(&#039;atapi&#039;,&#039;PP-ATAPI&#039;,1),&nbsp;&nbsp;&nbsp;&nbsp;// Parallel port ATAPI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;48=&gt; array(&#039;raid&#039;,&#039;DAC960-RAID&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// Mylex DAC960 PCI RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;49=&gt; array(&#039;raid&#039;,&#039;DAC960-RAID&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// Mylex DAC960 PCI RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;50=&gt; array(&#039;raid&#039;,&#039;DAC960-RAID&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// Mylex DAC960 PCI RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;51=&gt; array(&#039;raid&#039;,&#039;DAC960-RAID&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// Mylex DAC960 PCI RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;52=&gt; array(&#039;raid&#039;,&#039;DAC960-RAID&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// Mylex DAC960 PCI RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;53=&gt; array(&#039;raid&#039;,&#039;DAC960-RAID&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// Mylex DAC960 PCI RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;54=&gt; array(&#039;raid&#039;,&#039;DAC960-RAID&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// Mylex DAC960 PCI RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;55=&gt; array(&#039;raid&#039;,&#039;DAC960-RAID&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// Mylex DAC960 PCI RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;56=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Fifth IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;57=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Sixth IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;65=&gt; array(&#039;scsi&#039;,&#039;SCSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// SCSI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;66=&gt; array(&#039;scsi&#039;,&#039;SCSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// SCSI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;67=&gt; array(&#039;scsi&#039;,&#039;SCSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// SCSI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;68=&gt; array(&#039;scsi&#039;,&#039;SCSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// SCSI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;69=&gt; array(&#039;scsi&#039;,&#039;SCSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// SCSI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;70=&gt; array(&#039;scsi&#039;,&#039;SCSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// SCSI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;71=&gt; array(&#039;scsi&#039;,&#039;SCSI&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// SCSI disk devices<br/>&nbsp;&nbsp;&nbsp;&nbsp;72=&gt; array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;73=&gt; array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;74=&gt; array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;75=&gt; array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;76=&gt; array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;77=&gt; array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;78=&gt; array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;79=&gt; array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;80=&gt; array(&#039;i2o&#039;,&#039;I2O&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// I2O hard disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;81=&gt; array(&#039;i2o&#039;,&#039;I2O&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// I2O hard disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;82=&gt; array(&#039;i2o&#039;,&#039;I2O&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// I2O hard disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;83=&gt; array(&#039;i2o&#039;,&#039;I2O&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// I2O hard disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;85=&gt; array(&#039;i2o&#039;,&#039;I2O&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// I2O hard disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;86=&gt; array(&#039;i2o&#039;,&#039;I2O&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// I2O hard disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;87=&gt; array(&#039;i2o&#039;,&#039;I2O&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// I2O hard disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;88=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Seventh IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;89=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Eighth IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;90=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Ninth IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;91=&gt; array(&#039;eide&#039;,&#039;E-IDE&#039;,64),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Tenth IDE hard disk/CD-ROM interface<br/>&nbsp;&nbsp;&nbsp;&nbsp;92=&gt; array(&#039;ppdd&#039;,&#039;PPDD&#039;,1),&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// PPDD encrypted disk driver<br/>&nbsp;&nbsp;&nbsp;&nbsp;94=&gt; array(&#039;ibm&#039;,&#039;IBM-S/390-DASD&#039;,4),&nbsp;&nbsp;&nbsp;&nbsp;// IBM S/390 DASD block storage<br/>&nbsp;&nbsp;&nbsp;&nbsp;95=&gt; array(&#039;ibm&#039;,&#039;IBM-S/390-VM/ESA&#039;,1),&nbsp;&nbsp;&nbsp;&nbsp;// IBM S/390 VM/ESA minidisk<br/>&nbsp;&nbsp;&nbsp;&nbsp;101=&gt;array(&#039;raid&#039;,&#039;AMI-HD-RAID&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// AMI HyperDisk RAID controller<br/>&nbsp;&nbsp;&nbsp;&nbsp;104=&gt;array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;105=&gt;array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;106=&gt;array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;107=&gt;array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;108=&gt;array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;109=&gt;array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;110=&gt;array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;111=&gt;array(&#039;compaq&#039;,&#039;Compaq&#039;,16),&nbsp;&nbsp;&nbsp;&nbsp;// Compaq Intelligent Drive Array<br/>&nbsp;&nbsp;&nbsp;&nbsp;112=&gt;array(&#039;ibm&#039;,&#039;IBM-iSeries&#039;,8),&nbsp;&nbsp;&nbsp;&nbsp;// IBM iSeries virtual disk<br/>&nbsp;&nbsp;&nbsp;&nbsp;199=&gt;array(&#039;vm&#039;,&#039;VxVM&#039;,1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// Veritas volume manager (VxVM) volumes<br/>&nbsp;&nbsp;&nbsp;&nbsp;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;for($i=2; $i&lt;count($part); $i++) // start check $ppart&#91;2&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list($major,$minor,$blocks,$name) = preg_split(&#039;/&#92;s+/&#039;,trim($part&#91;$i&#93;));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($d = $ddtable&#91;$major&#93;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$type = $d&#91;0&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($minor % $d&#91;2&#93;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ppart&#91;$type&#93;&#91;$key&#93; .= $name . &#039; &#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($blocks == 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ppart&#91;$type&#93;&#91;$key&#93; .= &#039;&amp;lt; &#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$check&#91;$type&#93;&#91;&#93; = $key;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125; else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$key = (int) $&#123;$type&#125;++; // it&#039;s mean that counts of the HDD number<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//$key = $major.$minor; // HDD uniq ID<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;dd&#91;$type&#93;&#91;$key&#93; = array(&#039;name&#039;=&gt;$d&#91;1&#93;,&#039;major&#039;=&gt;$major,&#039;minor&#039;=&gt;$minor);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(is_array($ppart))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach(array_keys($ppart) AS $type)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($check&#91;$type&#93;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foreach($check&#91;$type&#93; AS $key)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123; $ppart&#91;$type&#93;&#91;$key&#93; .= &#039;&amp;gt;&#039;; &#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort($ppart&#91;$type&#93;); // for value sort<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sort($this-&gt;dd&#91;$type&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return $ppart;<br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;function get_swpart()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!$swaps = @file(&#039;/proc/swaps&#039;)) return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;for($i=1; $i&lt;count($swaps); $i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123; $sw .= preg_replace(&#039;;^/dev/(&#91;^ &#93;+).+&#92;n*$;&#039;,&#039;&#92;&#92;1&#039;,$swaps&#91;$i&#93;) . &#039;,&#039;; &#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return preg_replace(&#039;/,$/&#039;,&#039;&#039;,$sw);<br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;## same as $utils-&gt;get_file($file)<br/>&nbsp;&nbsp;##<br/>&nbsp;&nbsp;function get_release($file)<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!file_exists($file)) return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if(function_exists(dio_open))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($fp = @dio_open($file,O_RDONLY))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$contents = dio_read($fp,filesize($file));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dio_close($fp);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $contents;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if($fp = @fopen($file,&#039;r&#039;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$contents = fread($fp,filesize($file));<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fclose($fp);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return $contents;<br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;function get_os()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;global $ARCH;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$ostype = PHP_OS;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!$ARCH&#91;&#039;r&#039;&#93; &amp;&amp; (!$ARCH&#91;&#039;r&#039;&#93; = $this-&gt;dmesg&#91;&#039;kernel&#039;&#93;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unset($ostype);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!$kernel = @file(&#039;/proc/sys/kernel/osrelease&#039;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($kernel = @file(&#039;/proc/version&#039;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123; $ARCH&#91;&#039;r&#039;&#93; = preg_replace(&#039;/^(&#91;^(&#93;+) &#92;(.+$/&#039;,&#039;&#92;&#92;1&#039;,$kernel&#91;0&#93;); &#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else $ARCH&#91;&#039;r&#039;&#93; = $kernel&#91;0&#93;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$tmp = array(&#039;/etc/hancom-release&#039;,&#039;/etc/redhat-release&#039;,&#039;/etc/debian_release&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;/etc/version&#039;,&#039;/etc/Version&#039;,&#039;/etc/wow-release&#039;,&#039;/etc/wowlinux-release&#039;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;foreach($tmp AS $v) if($dist = $this-&gt;get_release($v)) break;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!$dist)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($hdle = @opendir(&#039;/etc&#039;))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while($file = @readdir($hdle))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(preg_match(&#039;/release&#124;version/i&#039;,$file))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123; $dist = $this-&gt;get_release(&#039;/etc/&#039;.$file); break; &#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;closedir($hdle);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return &quot;$ostype $ARCH&#91;r&#93; $ARCH&#91;m&#93;&quot; . ($dist ? &#039; / &#039;.$dist : &#039;&#039;);<br/>&nbsp;&nbsp;&#125;<br/><br/><br/>&nbsp;&nbsp;function get_netstat()<br/>&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(!$netstat = @file(&#039;/proc/net/dev&#039;)) return;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;for($i=2; $i&lt;count($netstat); $i++)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## &#039;:&#039;과 공백문자를 나누어 배열형태로 만듬<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## R : 받는 패킷<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;## T : 보낸 패킷<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$j = $i - 2;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$tmp = explode(&#039;:&#039;,$netstat&#91;$i&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stat&#91;&#039;iface&#039;&#93;&#91;$j&#93; = trim($tmp&#91;0&#93;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(preg_match(&#039;/^bond/&#039;,$stat&#91;&#039;iface&#039;&#93;&#91;$j&#93;)) $bonding++;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else if(preg_match(&#039;/^eth/&#039;,$stat&#91;&#039;iface&#039;&#93;&#91;$j&#93;)) $ethernet++;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list($bytes&#91;&#039;R&#039;&#93;,$stat&#91;&#039;R_packets&#039;&#93;&#91;$j&#93;,$stat&#91;&#039;R_errs&#039;&#93;&#91;$j&#93;,$stat&#91;&#039;R_drop&#039;&#93;&#91;$j&#93;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$null,$null,$null,$null,$bytes&#91;&#039;T&#039;&#93;,$stat&#91;&#039;T_packets&#039;&#93;&#91;$j&#93;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stat&#91;&#039;T_errs&#039;&#93;&#91;$j&#93;,$stat&#91;&#039;T_drop&#039;&#93;&#91;$j&#93;,$stat&#91;&#039;T_colls&#039;&#93;&#91;$j&#93;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;) = preg_split(&#039;/&#92;s+/&#039;,trim($tmp&#91;1&#93;));<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stat&#91;&#039;R_size&#039;&#93;&#91;$j&#93; = $this-&gt;file_hsize($bytes&#91;&#039;R&#039;&#93;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stat&#91;&#039;T_size&#039;&#93;&#91;$j&#93; = $this-&gt;file_hsize($bytes&#91;&#039;T&#039;&#93;);<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 충돌률 계산<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($stat&#91;&#039;T_packets&#039;&#93;&#91;$j&#93; &gt; 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if((int)$stat&#91;&#039;T_colls&#039;&#93;&#91;$j&#93;*100/$stat&#91;&#039;T_packets&#039;&#93;&#91;$j&#93; &gt;= 5)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stat&#91;&#039;T_colls&#039;&#93;&#91;$j&#93; = &#039;&lt;FONT COLOR=&quot;FF0000&quot;&gt;&#039;.$stat&#91;&#039;T_colls&#039;&#93;&#91;$j&#93;.&#039;&lt;/FONT&gt;&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$chk .= $stat&#91;&#039;iface&#039;&#93;&#91;$j&#93; . &#039;&amp;nbsp;&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;if($bonding &amp;&amp; $ethernet &gt;= 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//$ethernet = $j - $bonding;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$stat&#91;&#039;fix&#039;&#93; = &quot;현재 이 시스템은 $&#123;ethernet&#125;개의 &quot;.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TAG_A(&quot;&lt;font color=&#039;#0000FF&#039;&gt;Ethernet Channel에 대해서 $&#123;bonding&#125;개의 &quot;.<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;가상 bonding 장치&lt;/font&gt;&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;http://www.linuxchannel.net/docs/ethernet-channel-bonding.txt&#039;,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;_blank&#039;,&#039;About the ethernet channel bonding&#039;).<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#039;가 설정되어 있음.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&#039;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;$stat&#91;&#039;fix&#039;&#93; = &quot;* $stat&#91;fix&#93; TX의 Colls 항목은 collisions을 의미.&quot;;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if($chk)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123; $stat&#91;&#039;fix&#039;&#93; .= &quot;&lt;BR&gt;&amp;nbsp;&amp;nbsp; &lt;FONT COLOR=&#039;#FF0000&#039;&gt;$chk&lt;/FONT&gt;검점 필요(충돌률 5%이상) !!!&quot;; &#125;<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;return $stat;<br/>&nbsp;&nbsp;&#125;<br/>&#125; // end of class<br/><br/>?&gt;</div>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 找了段韩国人写的PHP，哈哈]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>