Скрипт мониторинга изменений файлов

Категория: / DEV Блог / PHP (LAMP)
Скрипт мониторинга файловой системы с информированием пользователя о прошедших изменениях.
Использовать скрипт полезно запуская задание по крону (например ночью, в 3 часа)

0   3   *   *   *   /usr/bin/php -f /home/user/fsmon.php > /dev/null 2>&1


в случае выявления изменений, отправит сформированный отчет администратору.

Настройки (файл конфигурации config.php)

// Проверяем эти папки
'root' => [
 __DIR__ . '/first',
 __DIR__ . '/another',
'/some/path/on/server'
],
 
// Игнорим эти
'ignore_dirs' => [
 '/private/stuff/here'
],
 
// ServerTag для отчетов, дефолтно берется из _SERVER[SERVER_NAME], если установлен
'server' => 'MY_TAG',
 
// Чекаем эти файлы
'files' => '(\.php.?|\.htaccess|\.html)$',
 
// Логи пишем ./logs/Ym/d-m-y.log
'log' => true,
 
// Уведомляем по почте
'mail' => [
'from' => 'info@skillz.ru',
'to' => 'rustyj4ck@gmail.com',
'enable' => true
]


Скачать скрипт (github):

https://github.com/rustyJ4ck/FSMon

Проверить можно командой:

php fsmon.php


После первого запуска скрипт создаст базу с контрольными суммами файлов в файле .cache (заранее поставьте права на запись!).

На почту поступит отчет вида

[  modified]    Q:\misc\fs_monitor\fsmon.php         5.1 kb  28.09.2009 23:37
[       new]    Q:\misc\fs_monitor\1\sc.phps       1 kb    28.09.2009 23:09
[   deleted]    Q:\misc\fs_monitor\1\op.phps        2 kb    01.01.1970 03:00


Скрипт поможет решить следующие вопрос:
Как отследить изменения файлов на сервере. мониторинг изменения страниц сайта.
Защита от взлома сайта.


Краткая инструкция по установке:

1/ Создаем папку, скачиваем файлы скрипта
mkdir -m 777 fsmon
cd fsmon
git clone https://github.com/rustyJ4ck/FSMon.git ./
2/ В файле config.php добавляем в раздел 'root' список папок для мониторинга, в 'mail' указываем адрес, на который будут падать отчеты
3/ Инициализируем базу fsmon, запустив скрипт первый раз php fsmon.php
4/ Вешаем вызов php fsmon.php на крон