Случилось так, что недавно был вынужден перенести сайт с виртуального хостинга на ВПС.
Пока настраивал систему, в течение буквально трех дней сайт сломали. Починил - через день сломали опять.
В интернете (не знаю у же где, спасибо ему

) натолкнулся на идею полезного скрипта, который контролирует изменения файловой системы и докладывает об этом печальном факте. Немного изменив и доработав его, выкладываю для общего пользования.
Итак, файл первый, запускается вручную при каждом сделанном ВАМИ изменении файловой системы Joomla:
#!/bin/bash
find ~/www/папка.вашего.сайта -type f -not \( -name "*.dat" -or -name "*.log" -or -wholename "/полный/путь/к/сайту/components/com_sh404sef/cache/*" -or -wholename "/полный/путь/к/сайту/cache/*" \) -exec md5sum {} \; > ~/check/ethalon.md5
Скрипт создает файл ~/check/ethalon.md5 со списком md5-сумм всех файлов, кроме указанных в аргументах команды find. В исключения можно добавлять любые файлы или каталоги, синтаксис виден из примера.
Второй файл, запускается по крону (у меня каждые два часа):
#!/bin/bash
find ~/www/папка.вашего.сайта -type f -not \( тут те же аргументы, что в первом файле \) -exec md5sum {} \; > ~/check/temp.md5
TO="ваш@емейл";
FROM="другой@емейл";
SUBJ="Изменение файлов(ваш.сайт)!";
MSG=`diff ~/check/temp.md5 ~/check/ethalon.md5`;
TMP="./tmp/tmpfile_"$RANDOM;
rm -rf $TMP;
echo "From: $FROM" >> $TMP;
echo "To: $TO" >> $TMP;
echo "Reply-To: $FROM" >> $TMP;
echo "Subject: $SUBJ" >> $TMP;
echo " " >> $TMP;
echo "$MSG" >> $TMP;
echo " " >> $TMP;
echo " " >> $TMP;
if [ -n "$MSG" ];
then cat $TMP|/usr/sbin/sendmail -t;
echo `date`' Sending email...' >> ~/check/check.log;
else echo `date`' Nothing to send...' >> ~/check/check.log;
fi
rm $TMP;
rm ~/check/temp.md5
Как это работает? Есть эталонный файл ethalon.md5 и созданный автоматически файл с актуальными данными temp.md5. Они сравниваются, и если есть различия, вам на емейл отправляется письмо вот такого вида:
2375c2375
< b9e6f3b591d41790e7b468e6a520b131 /путь/к/папке/сайта/administrator/components/com_sh404sef/config/config.sef.php
---
> db29904e426ca5ce0ccc4da2df97070d /путь/к/папке/сайта/administrator/components/com_sh404sef/config/config.sef.php
5118c5118
< b9e6f3b591d41790e7b468e6a520b131 /путь/к/папке/сайта/media/sh404_upgrade_conf.php
---
> db29904e426ca5ce0ccc4da2df97070d /путь/к/папке/сайта/media/sh404_upgrade_conf.php
Из письма видно, какие файлы и как изменились: а - добавились, с - изменилось содержимое, d - удален.
После этого результат пишется в лог, а временный файл удаляется.
Надеюсь, кому-нибудь поможет )