Гид по технологиям

Мониторинг диска в Ubuntu Server через philesight CGI

4 min read Сервер Обновлено 02 Oct 2025
Мониторинг диска в Ubuntu Server через philesight CGI
Мониторинг диска в Ubuntu Server через philesight CGI

К чему это пригодится

Philesight — лёгкий CGI-инструмент на Ruby, который визуализирует использование файловой системы. Это удобно для быстрого поиска больших папок и контроля пространства на сервере в локальной сети.

Важно: philesight — это сторонний проект: http://zevv.nl/play/code/philesight/. Проверяйте совместимость с вашей версией Ubuntu и правами доступа.

Краткий план действий

  1. Убедитесь, что у вас есть Ubuntu LAMP (Linux, Apache, MySQL, PHP) и доступ к терминалу.
  2. Установите зависимости.
  3. Включите поддержку CGI в Apache.
  4. Скачайте и разверните philesight.
  5. Индексируйте файловую систему и поместите CGI-скрипт в /usr/lib/cgi-bin.
  6. Добавьте cron-задание для ежедневного обновления индекса.

Подготовка и требования

Определения:

  • CGI: Common Gateway Interface — механизм запуска скриптов веб-сервером.
  • philesight: визуализатор использования диска, написан на Ruby.

Требования: доступ root/sudo, Apache, установленный Ruby и соответствующие библиотеки.

Установка зависимостей

Выполните в терминале:

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

Если пакет не найден, возможно, ваша версия Ubuntu использует другие имена пакетов; уточните для вашей версии.

Включение CGI в Apache

Если CGI ещё не настроен, создайте каталог и задайте права:

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

Отредактируйте файл конфигурации сайта Apache:

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

Убедитесь, что в конфигурации есть блок для /usr/lib/cgi-bin/:

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

Сохраните и закройте (Ctrl-X затем Y).

Скачивание и развертывание 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

Переместите исполняемые 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

Отредактируйте исполняемый файл, чтобы он корректно находил себя при запуске из cron:

sudo nano /usr/bin/philesight

Найдите строку:

require 'philesight'

и замените на:

require '/usr/bin/philesight'

Сохраните и закройте.

Подготовка базы данных индекса и индексирование

Создайте базу индекса и запустите индексирование корневой файловой системы (это может занять время):

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

Результат: в /usr/lib появится каталог philesightdb с данными индекса.

Размещение CGI-скрипта и настройка веб-интерфейса

Отредактируйте файл philesight.cgi в скачанном каталоге:

cd ~/downloads/philesight  
sudo nano philesight.cgi

Найдите и измените параметр на:

 $path_db = "/usr/lib/philesightdb"

Сохраните файл. Затем переместите CGI в каталог Apache и сделайте его исполняемым:

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

Перезапустите Apache:

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

Откройте в браузере (локально или по сети):

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

При первом запуске график может показывать, что 100% занимает “proc” — это ожидаемо; прокрутите вниз и просмотрите список папок. Клик по папке покажет её внутреннюю визуализацию.

Автоматическое ежедневное обновление индекса (cron)

Создайте cron-скрипт в /etc/cron.daily:

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

Теперь индекс будет обновляться ежедневно (через mechanizm cron.daily).

Что делать при проблемах

  • Если команды apt не находят пакеты — проверьте репозиторий и соответствие версии Ubuntu.
  • Если Apache не запускается — проверьте синтаксис конфигурации: sudo apache2ctl configtest.
  • Если CGI не выполняется — проверьте права и наличие shebang в файле philesight.cgi.

Альтернативные подходы

  • Использовать ncdu для интерактивного анализа в терминале.
  • Для постоянного веб-мониторинга — рассмотреть инструменты вроде Grafana (с экспортом метрик) или специализированные файловые сканеры с веб-интерфейсом.

Безопасность и права доступа

  • philesight показывает структуру файловой системы: ограничьте доступ к CGI через файл конфигурации Apache или IP-фильтрацию.
  • Не размещайте этот интерфейс публично без аутентификации.

Критерии приёмки

  • CGI скрипт открывается по URL и отображает список корневых папок.
  • Индекс создаётся и хранится в /usr/lib/philesightdb.
  • Cron-скрипт выполняется и обновляет базу без ошибок.

Чек-лист администратора

  • Установлены зависимости.
  • Включён cgi-bin в конфигурации Apache.
  • philesight размещён в /usr/bin и /usr/lib/cgi-bin.
  • Права файлов и символические ссылки настроены.
  • Индекс создан и cron работает.
  • Доступ к интерфейсу ограничен (ACL/Firewall).

Короткое руководство по откату

  1. Остановите доступ к philesight: удалите файл /usr/lib/cgi-bin/philesight.cgi или закомментируйте его в Apache.
  2. Удалите индекс: sudo rm -rf /usr/lib/philesightdb.
  3. Удалите бинарные файлы: sudo rm /usr/bin/philesight /usr/bin/philesight.rb.

Итог

Philesight даёт простой визуальный способ увидеть, какие папки занимают место на диске. Процесс включает установку зависимостей, настройку Apache для CGI, запуск индексирования и настройку ежедневного cron-обновления. Контролируйте доступ и проверяйте совместимость пакетов для вашей версии Ubuntu.

Важно: тестируйте на staging-сервере перед развёртыванием в продакшн.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Дата установки и время работы Windows/Linux
Системы

Дата установки и время работы Windows/Linux

Безопасный режим в контекстном меню Windows 11
Windows

Безопасный режим в контекстном меню Windows 11

Установка Scientific Linux 6.1 — пошагово
Linux

Установка Scientific Linux 6.1 — пошагово

Внешний GPS для iPad и iPhone — руководство
Мобильные устройства

Внешний GPS для iPad и iPhone — руководство

Скорость интернета на панели задач Windows 10
Windows

Скорость интернета на панели задач Windows 10

Мониторинг диска в Ubuntu Server через philesight CGI
Сервер

Мониторинг диска в Ubuntu Server через philesight CGI