Скрипт формирует отчет в измененных php файлах за последние 24 часа и отправляет его на почту (если изменения были)
#!/bin/bash # Путь для сохранения логов LOG_FILE="/var/log/php_changes.log" # Email для отправки результатов EMAIL="notify@myserver.ru" # Тема письма SUBJECT="Отчет об измененных PHP-файлах за последние 24 часа" # Кодируем тему в base64 для RFC 2047 ENCODED_SUBJECT="=?UTF-8?B?$(printf "%s" "$SUBJECT" | base64 -w 0)?=" # Email отправителя FROM="root@myserver.ru" # Команда для поиска измененных PHP-файлов FIND_COMMAND="find /var/www/*/data/www -type f -name '*.php' -mtime -1" # Записываем дату и время проверки в лог echo "=== Проверка изменений PHP-файлов: $(date) ===" >> "$LOG_FILE" # Выполняем поиск и сохраняем результаты, логируем ошибки отдельно CHANGED_FILES=$(bash -c "$FIND_COMMAND" 2>>"$LOG_FILE") EXIT_CODE=$? # Записываем статус выполнения команды find echo "Код возврата find: $EXIT_CODE" >> "$LOG_FILE" echo "Результаты поиска:" >> "$LOG_FILE" echo "$CHANGED_FILES" >> "$LOG_FILE" # Проверяем, были ли найдены файлы if [ -n "$CHANGED_FILES" ]; then echo "Найдены измененные PHP-файлы. Подробности в $LOG_FILE" >> "$LOG_FILE" # Отправляем email с результатами через Exim /usr/sbin/exim -t <<EOF To: $EMAIL Subject: $ENCODED_SUBJECT From: $FROM Content-Type: text/plain; charset=UTF-8 Найдены измененные PHP-файлы за последние 24 часа. Список файлов: $CHANGED_FILES EOF if [ $? -eq 0 ]; then echo "Email успешно отправлен на $EMAIL" >> "$LOG_FILE" else echo "Ошибка при отправке email на $EMAIL" >> "$LOG_FILE" fi else echo "Измененных PHP-файлов не найдено." >> "$LOG_FILE" fi # Добавляем пустую строку в лог для читаемости echo "" >> "$LOG_FILE"
comments powered by HyperComments