기술 가이드

Ubuntu 서버에서 Philesight CGI로 디스크 사용량 시각화 모니터링 방법

4 min read 서버 관리 업데이트됨 02 Oct 2025
Ubuntu에서 Philesight로 디스크 사용량 시각화
Ubuntu에서 Philesight로 디스크 사용량 시각화

요약

간단 요약: 이 가이드는 Ubuntu LAMP 서버에 Philesight(Philelight 클론)를 설치해 로컬 네트워크에서 하드 드라이브 사용량을 시각적으로 확인하는 방법을 제공합니다. 설치, 아파치 설정, 데이터베이스 인덱싱, CGI 배치, 일일 갱신용 cron 스크립트와 기본 보안 권장사항을 포함합니다.

소개

Philesight는 파일 시스템의 용량 분포를 시각화하는 Ruby 기반 CGI 스크립트입니다. 원격 브라우저에서 각 디렉터리의 사용량을 그래픽으로 볼 수 있어 디스크 정리가 필요한 위치를 빠르게 파악할 수 있습니다. 이 가이드는 Ubuntu LAMP( Linux, Apache, MySQL, PHP ) 환경의 /var/www 웹 루트를 기준으로 설명합니다.

중요 용어 한 줄 정의:

  • CGI: 웹 서버에서 스크립트를 실행해 동적 콘텐츠를 생성하는 방식.

사전 준비

  • Ubuntu LAMP 서버(웹 루트: /var/www).
  • 터미널 접근 권한과 sudo 권한.
  • 인터넷 연결(Philesight 소스 다운로드).

1. 의존성 설치

다음 패키지를 설치합니다:

sudo apt-get install libdb4.2-ruby1.8 libcairo-ruby1.8 libapache2-mod-perl2 libapache2-mod-php5 ruby

설치 중 오류가 나면 패키지 이름이나 배포판(예: Ubuntu 버전)에 따라 패키지명이 달라질 수 있으므로, 배포판 문서를 확인하세요.

2. CGI 활성화 (필요한 경우)

sudo mkdir /usr/lib/cgi-bin
sudo chmod 755 /usr/lib/cgi-bin

3. Apache 사이트 파일 편집

아파치 사이트 설정 파일을 엽니다:

sudo nano /etc/apache2/sites-available/default

다음 섹션이 포함되어 있는지 확인합니다:

         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        

편집 후 저장하고 닫습니다(예: Ctrl-X, Y).

4. Philesight 다운로드 및 압축 해제

작업 디렉터리를 만들고 다운로드합니다:

mkdir ~/downloads
cd ~/downloads
sudo wget http://zevv.nl/play/code/philesight/philesight-20120427.tgz

압축을 풀고 이름을 정리합니다:

tar -xvf philesight-20120427.tgz
sudo mv philesight-20120427 philesight
cd philesight

5. 실행 파일 배치 및 권한 설정

Ruby 스크립트와 실행 파일을 이동하고 실행 권한을 부여합니다:

sudo mv philesight /usr/bin/philesight
sudo mv philesight.rb /usr/bin/philesight.rb
sudo chmod a+x /usr/bin/philesight
sudo chmod a+x /usr/bin/philesight.rb

6. Cron에서 올바르게 동작하도록 경로 수정

philesight 스크립트를 편집해 require 경로를 절대경로로 변경합니다:

sudo nano /usr/bin/philesight

현재 다음 줄이 있다면:

require 'philesight'

다음처럼 바꿉니다:

require '/usr/bin/philesight'

저장 후 닫습니다.

7. 디렉터리 데이터베이스 생성(인덱싱)

다음 명령으로 인덱스를 생성합니다(디스크 용량에 따라 시간이 걸립니다):

cd /usr/bin/
sudo /usr/bin/philesight --db /usr/lib/philesightdb --index /

루트 디렉터리의 모든 파일을 스캔하므로 데이터 양에 따라 몇 분에서 수십 분이 걸릴 수 있습니다.

8. 웹 파일 준비

다운로드한 소스의 CGI 파일을 열어 DB 경로를 지정합니다:

cd ~/downloads/philesight
sudo nano philesight.cgi

다음 변수를 찾아 수정합니다:

 $path_db = "/usr/lib/philesightdb"

저장하고 닫습니다.

9. CGI 스크립트 설치 및 권한

sudo mv philesight.cgi /usr/lib/cgi-bin/philesight.cgi
sudo chmod a+x /usr/lib/cgi-bin/philesight.cgi

Ruby 모듈을 CGI에서 사용할 수 있도록 심볼릭 링크를 만듭니다:

sudo ln -s /usr/bin/philesight.rb /usr/lib/cgi-bin/philesight.rb
sudo chmod a+x /usr/bin/philesight.rb

10. 웹서버 재시작

아파치 서비스를 재시작합니다(배포판에 따라 하나만 필요할 수 있습니다):

sudo apache2ctl restart
sudo service apache2 restart
sudo /etc/init.d/apache2 force-reload

11. 결과 확인

브라우저에서 다음 주소를 열어 확인합니다:

http://your_server_name/cgi-bin/philesight.cgi

초기 로드에서 “proc”가 100%로 보이는 그래프가 보일 수 있습니다. 이는 시스템 가상 파일시스템(proc)을 포함해 표시한 결과이므로 무시하고 아래로 스크롤해 루트 디렉터리의 폴더 목록을 확인하세요. 각 폴더를 클릭하면 내부 구성의 시각적 표현이 나옵니다.

12. 일일 업데이트용 cron 설정

이미 생성한 DB를 정기적으로 갱신하려면 cron 스크립트를 작성합니다:

sudo nano /etc/cron.daily/philesight

다음 내용을 복사 후 저장합니다:

#!/bin/sh
sudo rm /usr/lib/philesightdb
sudo /usr/bin/philesight --db /usr/lib/philesightdb --index /

실행 권한을 부여합니다:

sudo chmod a+x /etc/cron.daily/philesight

이제 매일 인덱스가 재생성되어 최신 파일 사용량을 반영합니다.

문제 해결 요령

  • 인덱싱이 너무 오래 걸림: 스캔 대상을 루트(/) 대신 특정 마운트 포인트나 하위 디렉터리로 제한해 테스트하세요.
  • CGI가 실행되지 않음: 아파치 설정에서 ExecCGI 옵션과 ScriptAlias 경로를 다시 확인하세요. 에러 로그(/var/log/apache2/error.log)를 확인하세요.
  • 권한 문제: /usr/lib/philesightdb와 실행 파일의 소유자와 권한을 검토하세요.
  • 패키지 설치 오류: 배포판의 Ruby 버전과 패키지 명칭이 달라질 수 있습니다. 최신 Ubuntu에서는 패키지명이 다를 수 있으니 apt 검색으로 대체 패키지를 찾으세요.

대안과 비교

  • ncdu: 터미널 기반의 빠른 디스크 분석 도구(원격 터미널 사용 시 유용).
  • Baobab (디스크 사용 분석기): GUI 환경에서 사용.
  • Webmin: 전체 서버 관리를 위한 웹 인터페이스(디스크 모니터링 포함).
  • Grafana + node_exporter: 장기 모니터링 및 시계열 데이터가 필요할 때 적합.

선택 기준: 단순한 시각화와 빠른 설치가 목표면 Philesight가 적합합니다. 장기 모니터링이나 알림, 메트릭 집계가 필요하면 Prometheus/Grafana 계열을 고려하세요.

보안 및 접근 제한 권장사항

  • 공개 네트워크에 노출하지 마세요. 내부 네트워크에서만 접근하도록 방화벽/프록시로 제한하세요.
  • 아파치에서 Location/Directory 단위로 IP 제한이나 기본 인증(Basic Auth)을 설정해 보호하세요.
  • philesight CGI 파일 및 /usr/lib/philesightdb의 소유자 및 권한을 최소 권한 원칙에 따라 설정하세요.

예: 특정 IP만 허용하는 간단한 예시(아파치 설정에 추가):


    Order deny,allow
    Deny from all
    Allow from 192.168.1.0/24

운영자별 체크리스트

  • 시스템 관리자:
    • 아파치 설정 백업
    • 패키지 호환성 확인
    • 방화벽 규칙 적용
  • 웹 운영자:
    • CGI 파일 권한 검토
    • 웹에서 정상 렌더링 확인
  • 보안 담당자:
    • 접근 제어 적용
    • 로그 모니터링 설정

수용 기준

  • philesight CGI 페이지가 내부 브라우저에서 열리고 루트 디렉터리의 폴더들이 시각화되어야 함.
  • cron 실행 후 /usr/lib/philesightdb가 재생성되어야 함.
  • 아파치 로그에 치명적 에러가 없어야 함.

요약 정리

  • Philesight는 파일 시스템 사용량을 시각화하는 가벼운 도구입니다.
  • 아파치 CGI 활성화, 의존성 설치, 인덱싱, CGI 배치, cron 자동화 순서로 설정합니다.
  • 보안을 위해 내부 전용 접근과 인증을 적용하세요.

중요: 프로덕션 환경에 공개하기 전에 사내 보안 정책에 따라 접근 제어와 테스트를 충분히 수행하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Windows 11 우클릭에 안전 모드 추가하는 방법
Windows 튜토리얼

Windows 11 우클릭에 안전 모드 추가하는 방법

Scientific Linux 6.1 DVD 설치 가이드
Linux

Scientific Linux 6.1 DVD 설치 가이드

아이패드/아이폰에 외부 GPS 연결하는 방법
모바일 가이드

아이패드/아이폰에 외부 GPS 연결하는 방법

Windows 10 작업 표시줄에 인터넷 속도 표시하기
Windows 팁

Windows 10 작업 표시줄에 인터넷 속도 표시하기

Ubuntu에서 Philesight로 디스크 사용량 시각화
서버 관리

Ubuntu에서 Philesight로 디스크 사용량 시각화

인스타그램에서 좋아요한 게시물 확인하고 정리하는 방법
소셜 미디어

인스타그램에서 좋아요한 게시물 확인하고 정리하는 방법