본문으로 바로가기

php 폴더 용량 조회 + DB 용량 조회

category [ Web 관련 ]/php 2020. 12. 2. 15:21

디렉토리 파일 갯수 + 용량 조회

// 폴더 전체용량 
function dirsize($dir){ 
       static $size, $cnt; 
       $fp = opendir($dir); 
       while(false !== ($entry = readdir($fp))){ 
             if(($entry != ".") && ($entry != "..")){ 
                  if(is_dir($dir.'/'.$entry)){ 
                       clearstatcache(); 
                       dirsize($dir.'/'.$entry); 
                  } else if(is_file($dir.'/'.$entry)){ 
                       $size += filesize($dir.'/'.$entry); 
                       clearstatcache(); 
                       $cnt++; 
                  } 
             } 
       } 
      closedir($fp); 

      $stat = array( 
                'size' => $size, 
                'cnt' => $cnt 
      ); 
      return $stat; 
 } // end func 

 function attach($size) { 
      if($size < 1024){ 
            return number_format($size*1.024).'b'; 
      } else if(($size > 1024) && ($size < 1024000)){ 
            return number_format($size*0.001024).'Kb'; 
      } else if($size > 1024000){ 
            return number_format($size*0.000001024,2).'Mb'; 
      } 
      return 0; 
 } 

 // 사용법: $arr = dirsize(폴더 경로); 
 // $arr['cnt'] <- 총 파일 수, $arr['size'] <- 총 용량 수 
 $stat = dirsize('./includes'); 

 echo "총 파일수: ".$stat['cnt']." 총 파일 용량: ".attach($stat['size']); 
 
 
//홈페이지 Root
//echo $_SERVER['DOCUMENT_ROOT'];

 

 

출처 : cnisoft.tistory.com/123 

 

[PHP]폴더 용량 체크

[PHP]폴더 용량 체크  // 폴더 전체용량  function dirsize($dir){        static $size, $cnt;        $fp = opendir($dir);        while(false !== ($entry = readdir($fp))..

cnisoft.tistory.com

 

 

 

DB 용량 조회 (Mysql)

<?

$db_host = "localhost";
$db_user = "ID";
$db_pwd = "PASSWORD";
$db_name = "DB NAME";

$conn = mysqli_connect($db_host, $db_user, $db_pwd, $db_name);
$sql = "SELECT table_schema 'db_name', ROUND(SUM(data_length + index_length) / 1024 / 1024, 1) 'size'
FROM information_schema.tables
WHERE table_schema = '".$db_name."'
GROUP BY table_schema; ";

$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result);

echo $row[0] . 'DB 용량 : ' . $row[1] . 'MB';

?>

 

 

참조

table용량 확인

 

SELECT 

concat(table_schema,'.',table_name),   

concat(round(table_rows/1000000,2),'M') rows,   

concat(round(data_length/(1024*1024*1024),2),'G') DATA,   

concat(round(index_length/(1024*1024*1024),2),'G') idx,   

concat(round((data_length+index_length)/(1024*1024*1024),2),'G') total_size,   

round(index_length/data_length,2) idxfrac    

FROM information_schema.TABLES  

where table_name = '테이블명' ;

 

출처 : http://ddanggle.tistory.com/20

 

전체 db용량 확인

 

select table_schema "databases_name", SUM(data_length + index_length) / 1024 / 1024 "size(MB)" from information_schema.TABLES;

 

출처 : http://blog.mongee.net/29