ディスクの中にあるディレクトリをサイズ順に並べるPHPスクリプト
セーフモードが有効だと多分動きません。
<?php exec('du -Sh /', $return); foreach ($return as $data) { $data2 = explode("\t", $data); $size = $data2[0]; $unit = substr($size, -1); $size = substr($size, 0, -1); switch ($unit) { case 'G': $size2 = $size * 1000 * 1000; break; case 'M': $size2 = $size * 1000; break; default: $size2 = $size; break; } $sizeList[] = array($size2, $data2[0], $data2[1]); } usort($sizeList, 'sort_for_number'); var_dump($sizeList); function sort_for_number($a, $b) { return ($a[0] < $b[0]) ? TRUE : FALSE; }
こんな感じで表示される。膨大な量が出てくるはずなのでmoreとかlessとかを繋げといたほうが良さげ。
array(25543) { [0]=> array(3) { [0]=> float(5300000) [1]=> string(4) "5.3G" [2]=> string(14) "/var/lib/mysql" } [1]=> array(3) { [0]=> float(1700000) [1]=> string(4) "1.7G" [2]=> string(9) "/home/xxx" } [2]=> array(3) { [0]=> float(1100000) [1]=> string(4) "1.1G" [2]=> string(41) "/home/www/xxx.xxx.com/logs/20120214" } [3]=> array(3) { [0]=> int(678000) [1]=> string(4) "678M" [2]=> string(32) "/home/www/xxxx.xxx.com/logs" } [4]=> array(3) { [0]=> int(417000) [1]=> string(4) "417M" [2]=> string(34) "/home/www/xxxxx.xxx.com/logs" } ...(以下略)