Мониторинг диска в Ubuntu Server через philesight CGI
К чему это пригодится
Philesight — лёгкий CGI-инструмент на Ruby, который визуализирует использование файловой системы. Это удобно для быстрого поиска больших папок и контроля пространства на сервере в локальной сети.
Важно: philesight — это сторонний проект: http://zevv.nl/play/code/philesight/. Проверяйте совместимость с вашей версией Ubuntu и правами доступа.
Краткий план действий
- Убедитесь, что у вас есть Ubuntu LAMP (Linux, Apache, MySQL, PHP) и доступ к терминалу.
- Установите зависимости.
- Включите поддержку CGI в Apache.
- Скачайте и разверните philesight.
- Индексируйте файловую систему и поместите CGI-скрипт в /usr/lib/cgi-bin.
- Добавьте 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).
Короткое руководство по откату
- Остановите доступ к philesight: удалите файл /usr/lib/cgi-bin/philesight.cgi или закомментируйте его в Apache.
- Удалите индекс: sudo rm -rf /usr/lib/philesightdb.
- Удалите бинарные файлы: sudo rm /usr/bin/philesight /usr/bin/philesight.rb.
Итог
Philesight даёт простой визуальный способ увидеть, какие папки занимают место на диске. Процесс включает установку зависимостей, настройку Apache для CGI, запуск индексирования и настройку ежедневного cron-обновления. Контролируйте доступ и проверяйте совместимость пакетов для вашей версии Ubuntu.
Важно: тестируйте на staging-сервере перед развёртыванием в продакшн.
Похожие материалы

Дата установки и время работы Windows/Linux
Безопасный режим в контекстном меню Windows 11

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

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