Я создал сценарий AIDE, который может отслеживать изменения файлов на моем хостинге, и когда что-то изменилось, он отправит электронное письмо с предупреждением об изменениях. На мой взгляд, я не думаю, что в сценарии есть проблемы. Так что позвольте мне в любом случае поделиться с вами:
Вот сценарий в моем репозитории git:
Для запуска этого скрипта у меня cronjob запускался каждые 20 минут следующим образом: * / 20 * * * * root / usr / local / bin / maxicron / aide / maxiaide cron> / dev / null
Скрипт хорошо справился с выдачей предупреждающего сообщения, но недавно я заметил, что продолжаю получать одно и то же письмо от этого скрипта с той же датой и временем (04-07-2020 5:43) с тем же содержанием. и вложение такое большое, как 22 МБ. Иногда я получаю почти дюжину писем одновременно.
Скриншот:
Когда я просматривал вложение в текстовом редакторе, я увидел следующую ошибку в файле журнала из сценария «Файловая база данных должна иметь одну спецификацию db_spec»:
Итак, это означает, что оповещение не завершило скрипт из-за ошибки.
Я отключаю cronjob на 2 дня, но до сих пор получаю это письмо. Также я проверил, что у меня нет cronjob, запускающего этот скрипт. Я проверил почтовую очередь exim -bp
и я не нашел очереди электронной почты в exim. Теперь скрипт не запущен, но у меня все еще есть это письмо с предупреждением. По вашему мнению, откуда на самом деле пришло это письмо? Как я могу отладить, откуда пришло электронное письмо, и я не думаю, что оно исходит из сценария, потому что сценарий больше не работает. Это так странно
все файлы журналов, похоже, не дают никаких подсказок, и поскольку время и дата этого электронного письма устарели, электронное письмо попало прямо в последний список, а не в верхний список почтового ящика.
Я использую CentOS 8, exim, dovecot, roundcube, apache_nginx, а версия AIDE - 0.16
Из-за проблемы с db_spec от AIDE я обнаружил, что exim пытался повторно отправить большое вложение в течение многих дней. (Думаю, может быть случайная ошибка при чтении с диска или способе чтения AIDE базы данных AIDE). Ошибка db_spec от AIDE означает, что база данных пуста (но на самом деле это не так). AIDE не завершил скрипт и заставил скрипт отправить большое вложение (без какого-либо фильтра из aide.conf), поэтому у exim были проблемы с повторной попыткой отправить электронное письмо с большим вложением, и оно зависало на много дней. Итак, я обнаружил, что это было в одной из папок ввода почты exim. Очистите папки ввода и спам ВРУЧНУЮ, и он исчезнет:
service exim stop
rm -fvr /var/spool/exim/input
service exim restart