Делаем слепок системы

1384

Здравствуйте!

Лазил по просторам интернета и нашёл вот такое интересное решение, которое делаем слепок системы.

DSiteStructureScanner DWand

Какой надумал вариант решения:
1) После того, как сайт полностью готов, заливаем на сервер dSSS и настраиваем его под этот сайт.
2) Создаем эталон файловой системы сайта.
3) Говорим планировщику запускать сканирование через нужные нам промежутки времени.
4) В случае нахождения ошибок, сканер отправляет нам на почту письмо с отчетом об ошибках.

Теоретически, это должно работать для любого сайта, независимо от CMS или отсутствия такой вообще. С админкой и БД никак не связывается — один раз настроили и дальше само работает.

Что делает эта штука:
Запоминает файловую структуру сайта, размеры файлов и время ихнего изменения. Потом при сканировании сравнивает этот эталом с тем, что есть. Таким образом находит файлы, у которых изменился объем, файлы, у которых изменилось время последней модификации, новые файлы и файлы, которые были удалены.

Проект состоит из 6 файлов:
build.php — создает эталон файловой системы. После создания эталона лучше удалить.
config.php — содержит все доступные настройки.
DSiteStructScanner.class.php — содержит сам рабочий класс. Делает все что связано со структурой файловой системы.
scan.php — производит сканирование текущей файловой системы, сравнивает с сохраненным эталоном и в случае чего отправляет почту.
show.php — отображает текущую файловую систему при текущих настройках (как это будет видеть сканер). Задумывался для проверки корректности введенных настроек. При использовании лучше удалить.
Файл-эталон — тут как назовете — так и будет. Содержит сохраненную структуру файловой системы, с которой будет сравниваться текущая.

Возможные настройки:
$etFName — название (или относительный путь) к файлу с эталоном файловой системы.
$root — путь к директории, с которой нужно начинать сканирование (самой верхней по иерархии).
$excPath — массив путей к файлам и папкам, которые не нужно сканировать. Например, потому, что в них предполагается «легальное» изменение файлов. Типа кеша, папок с изображениями и т.п.
$emails — разделенный запятыми список почтовых адресов, на которые нужно отсылать отчет об ошибках.
$subject — Тема письма-отчета об ошибках.
$mesBody — Шаблон тела письма об ошибках.
$headers — Дополнительные почтовые заголовки.

Немного о производительности
Тестировал пока только на своем домашнем компе под руководством Denwer.
Конфигурация: CPU: Intel Core 2 Due 2,8 ГГц, RAM: 4Гб.
Небольшой сайтик-визитку на EVO сканировало ~0,8 секунды.
На построение структуры папки home Денвера (12291 папка, 84855 файлов, 1,26Гб) пошло примерно 41 секунд.

Ссылка на скачивание
Скачать со страницы автора DSiteStructureScanner
Скачать с инстанта

Как пользоваться?
1) Скачать
2) Залить на сервер
3) Настроить в файле config.php
4) Запустить файл show.php и просмотреть все ли правильно настроилось. Если нет, то изменить настройки.
5) Если настройки верны, запустить build.php — создастся файл с эталоном ф.с.
6) Можно поиграться с изменением структуры и запуском сканирования через файл scan.php
7) Настроить планировщик на периодический запуск сканирования в удобное время.
8) Правильно настроить права доступа на файлы (вот как правильно, к сожалению, не подскажу, а ибо не знаю. Если кто знает — напишите, пожалуйста.)
9) Подойти к зеркалу, улыбнуться и похвалить себя :)
10) Написать коммент или предложение :)


http://community.modx-cms.ru/blog/research/8735.html
СМС активация 2.1 для 1.10 | Делаем на сайте поиск от Яндекса
Комментарии (14)
sotastroy 9 декабря 2012 в 19:07 0
Что из себя представляет файл-эталон? Какой-то читабельный вариант или просто файл для работы этого скрипта?


ps. Заглянул, думал тут будет про то, как ПРАВИЛЬНО сделать архивную/рабочую копию сайта, а тут немного не то, но плюс за находку, в любом случае будет полезна.
Димитриус 9 декабря 2012 в 19:25 0
Я так понял бинарный массив
AndroS 10 декабря 2012 в 04:09 0
Цель использования - обнаружение зараженных вирусом файлов или какая-то еще?
Димитриус 10 декабря 2012 в 10:05 0
Скрипт прогоняет по системе делая структуру файлов.
Раз в день можно запустить скриптик для того, что бы проверить не появились ли у вас новые файлы типа rootkit.php =)))) или не вписали ли вам в файл чего лишнего.
Честно сам не тестил.
KS 10 декабря 2012 в 08:11 0
Очень полезная вещь !
как от вирусов спасет, так и от хаков ftp и тп всяких ..
IRATE 10 декабря 2012 в 08:21 0
Никто из специалистов не затруднит более подробно не объяснит, что это такое и с чем едят?
IRATE 10 декабря 2012 в 08:23 0
SWIPE подвел, но, думаю, смысл ясен.
KS 10 декабря 2012 в 09:02 +2
Предположим вам в js на сайт залили что то левое , искать руками не легко и не всегда оперативно,
а тут по крону сработает, сделает сверку и выдаст отчет.
IRATE 10 декабря 2012 в 11:00 0
Спасибо!
Май 10 декабря 2012 в 10:24 0
Спасибо, очень полезная информация!
RubA 10 декабря 2012 в 18:12 0
спасибки
нужная вещь )
Димитриус 11 декабря 2012 в 00:20 +2
Отпишитесь пожалуйста о результатах ваших тестов.
alexbabo 22 марта 2013 в 02:42 0
Вопрос по установке.На сервер папку dsss заливать или 6 файлов по отдельности?И как настроить config.php?опишите подробно пожайлуста.
lezginka.ru 22 марта 2013 в 04:55 0
установил/запустил.все создалось.
где смотреть отчет ?