2014년 5월 28일 수요일

PHP 에서 디스크 사용량 측정.

웹서버를 운영하다 보면, 현재 디스크의 사용량을 알아내서, 특정 용량이상이 되면 경고를 보내거나 사용을 막야야 할 필요가 있을 때가 있다.

물론, 시스템 명령을 사용할 수도 있겠으나, 이때는 운영중인 시스템의 별로 따로 스크립트를 만들어 줘야 하는 귀찮음이 발생한다.
(리눅스일경우 리눅스 명령어를, 윈도우 시스템이면 윈도우 명령어를 쉘로 실행 시키고 결과값을 표시 해줘야 한다.)

하지만, 그저 단순히 여유 공간만을 계산할 필요가 있을 경우라면, PHP 의 경우 자체 명령으로 간단히 구현 할 수 있다.
(아마 ASP 같은 다른 언어쪽에도 같은 기능이 있겠지만, 지금은 일단 PHP 만...)

disk_free_space, disk_total_space 를 사용하면 된다.


<div>
<?php
 $dff = disk_free_space("/");
 $dft = disk_total_space("/");
 echo("(free/total) ". number_format($dff) . " / ". number_format($dft) . " : " . round(($dff / $dft * 100), 2) . "%" );

?>
</div>


이렇게 하면 현재 PHP가 운영중인 디스크의 여유공간/총용량을 보여 줄수 있다.

※ 사용량이 아니라 여유공간을 보여주는 것이므로 사용량과 헷갈리지 않게 하자.
※ 리눅스의 경우 하위 디렉토리라고 해서 동일한 디스크에 있는 것이 아니므로 측정하고자 하는 디스크의 위치를 정확히 파악하고 사용해야 한다.
 즉, 현재 해당 소스가 실행되고 있는 디렉토리가 소속된 디스크의 용량만을 나타낸다.