PHP Мониторинг FTP серверов.
Язык программирования PHP.
База данных MYSQL.
Написать программу, которая бы занималась мониторингом содержимого FTP
серверов. Программа состоит из двух частей.
Админка, тупо задает аттрибуты и имеет возможность насильно сделать проверку.
В админке редактируются для каждого FTP такие параметры как.
FTP, логин и пароли, пути (папки) начиная с которой нужно мониторить после
того как скрипт залогинился. По умолчанию строится дерево всех файлов "/".
Папки которые нужно пропускать для мониторинга (например папки кешей,
временных файлов и прочего что мониторить не важно). email на который
нужно высылать отчет с случае каких-то изменений. Имена уже не папок, а
файлов, которые мониторить не нужно. Возможность расчета CRC (по умолчанию выключено).
Вторая часть, запускается, индексирует содержания FTP серверов по очереди,
сравнивает с приведущим состоянием, обновляет своё состояние и отправляет
на электронку уведомления вида примерно такого.
26 марта в 0:03 начата проверка сервера
В результате обнаружены следующие изменения
Создана папка /data/, в папке 2 файла
Создан файл /data/index.html, размером 23,354 (23 кб, 0,02 Мб, 0,00 Гб), CRC 2934823249234
Создан файл /data/i.gif, размером 43 байта
Создан файл /db_damp.sql, размером 146,34 Мб, CRC такая-то (если опция включена)
Изменен файл
размер был 34, 565 байт стал 23, 132 байта (время создания нового файла)
Изменено содержимое файла без измененя размера
/temp/db.inc
размер был 34, 565 байт
стал 34, 565 байт
изменилось CRC файла было Трям-брям, стало Брям-трям.
Удалена папка /test/temp/, содержащая 4 файла
/test/temp/index.html
/test/temp/i/logo.gif, размер такойто
/test/temp/i/bg.jpg, размер такойто
/test/temp/i/promo.gif, размер такойто
Удалён файл
/flashka.rar, с датой создания такой-то, ЦРЦ такойто
Изменения состояния папки /secret/
было доступ запрещен, сейчас в папке 138 файлов
(список файлов)
Изменения состояния папки /secret2/
было 23 файла
(список файлов)
сейчас папке недоступна для чтения
Изменена дата модификации файла
/pupsik.txt размер 1500 байта
15 сентября 2007 17:31 стало 2 марта 2009 12:12
Или например по другому FTP серверу отчет может выглядеть так.
26 марта в 0:06 начата проверка сервера
У FTP сервера не получилось прочитат списка файлов и папок.
(неверный пороль или не возвращен ответ)
Или например такой отчет,
Запускается это всё хозяйство через крон раз в сутки (неделю)
например или через админку вручную (с выдачей лога на экран и
дублем его на почту).
Оптимизация про CRC.
Скрипт подсчета CRC можно кидать куда-нибудь в безопасную для работы сайта папку (/crc64-monitor-control/) (FTP пароль есть, все сайты - свои, никаких проблем не будет, везде есть PHP, каждый запуск можно закачать свежую версию паука, который во первых не будет жрать трафик, а все спокойно оббежит, во вторых будет работать быстрее), запускать локально и получаемые результаты передаст верхнему скрипту для записи в БД для сравнения с предыдущим состоянием, чтобы не считывать всё подряд, а обмениваться уже только результатами оббегания FTP. Тогда главный сайт будет только раздавать задания и собирать результаты, а всю работу будет делать сами сервера.