Скрипт проверяет по крону каждые 1 минуту хеш каталога /var/www/mikbill с исключениями динамических файлов и если сумма md5 изменилась, то отсылает сообщение в чат telegram
Создаем скрипт
mkdir -p /var/mikbill/custom_scripts/md5 cd /var/mikbill/custom_scripts/md5 nano md5.sh
#!/bin/bash server_name="demo 10.10.10.10"; TOKEN="231423444444444444335555555555555555555555" CHAT_ID="-444444444444444444" #SOCKS="--socks5-hostname 10.10.10.10:1080" HOME_DIR=$(cd $(dirname $0)&& pwd) cd /var/www/mikbill filename_stat=$HOME_DIR/hash_stat read data_stat < $filename_stat data_stat=$(echo $data_stat | head -n 1 | cut -c -20) md5_stat=$(find ./stat -not -path "*sys/mrtg_users*" -not -path "*app/log*" -type f -exec md5sum {} \; | sort -k 2 | md5sum) md5_stat=$(echo $md5_stat | head -n 1 | cut -c -20) if [ "$data_stat" != "$md5_stat" ];then MESSAGE_STAT="$server_name изменился hash каталога stat" URL="https://api.telegram.org/bot$TOKEN/sendMessage" curl $SOCKS -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE_STAT" >/dev/null echo -n $md5_stat > $filename_stat files_stat=$(find ./stat -not -path "*sys/mrtg_users*" -not -path "*app/log*" -type f -mmin -5) MESSAGE_STAT2="$server_name измененные файлы: $files_stat" URL="https://api.telegram.org/bot$TOKEN/sendMessage" curl $SOCKS -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE_STAT2" >/dev/null fi filename_admin=$HOME_DIR/hash_admin read data_admin < $filename_admin data_admin=$(echo $data_admin | head -n 1 | cut -c -20) md5_admin=$(find ./admin -not -path "*scripts/date_log.txt*" -not -path "*scripts/gpon*" -not -path "*gpon/log*" -not -path "*mbp/datas*" -not -path "*sys/mrtg*" -not -path "*scripts/log.txt*" -not -path "*admin/app/log*" -not -path "*_own_scripts*" -not -path "*store/switches*" -not -path "*sms_log.txt*" -not -path "*mikbill_update.log*" -not -path "*admin/*.xls" -type f -exec md5sum {} \; | sort -k 2 | md5sum) md5_admin=$(echo $md5_admin | head -n 1 | cut -c -20) if [ "$data_admin" != "$md5_admin" ];then MESSAGE_ADMIN="$server_name изменился hash каталога admin" URL="https://api.telegram.org/bot$TOKEN/sendMessage" curl $SOCKS -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE_ADMIN" echo -n $md5_admin > $filename_admin files_admin=$(find ./admin -not -path "*scripts/date_log.txt*" -not -path "*scripts/gpon*" -not -path "*gpon/log*" -not -path "*mbp/datas*" -not -path "*sys/mrtg*" -not -path "*scripts/log.txt*" -not -path "*admin/app/log*" -not -path "*store/switches*" -not -path "*sms_log.txt*" -not -path "*mikbill_update.log*" -not -path "*admin/*.xls" -type f -mmin -5) MESSAGE_ADMIN2="$server_name измененные файлы: $files_admin" URL="https://api.telegram.org/bot$TOKEN/sendMessage" curl $SOCKS -s -X POST $URL -d chat_id=$CHAT_ID -d text="$MESSAGE_ADMIN2" fi
server_name= - Заменить на свое имя и ip
TOKEN - Заменить на свой токен telegram
CHAT_ID - Заменить на свой chat id
(Как получить токен и chat id есть много статей в интернете)
Даем права на запуск
chmod +x md5.sh
Настраиваем время запуска в кроне
mcedit /etc/crontab
*/1 * * * * root /var/mikbill/custom_scripts/md5/md5.sh > /dev/null 2>&1