Главная > Программы > Exim Exim команды
Получение базовой информации по Exim Получение базовой информации по EximПроверить правильность синтаксиса конфигурационного файла и узнать с поддержкой каких опций собран exim:# exim –bVПечать списка сообщений в очереди: # exim –bpПросмотр активных отправителей: # exim -bp | awk '{print $4}' | sort | uniq -c | sort -rnВывод суммарной информации: # exim -bp | exiqsummТестирование маршрута доставки до указанного адреса: # exim -bt user@mail.ruИммитировать SMTP транзакцию из командной строки, как если бы сообщение пришло с указанного IP-адреса. При этом будет показано прохождение и срабатывание проверок, фильтров и листов доступа (ACL). На самом деле, никакое сообщение никуда доставлено не будет: # exim -bh 94.100.176.20Листинг всех настроек конфигурации: # exim -bP Поиск в очереди с помощью утилиты exiqgrepПросмотр сообщений конкретного отправителя:# exiqgrep -f name@domain.comПросмотр сообщений для конкретного получателя: # exiqgrep -r name2@domain2.comПоиск сообщений, старше, указанного времени (количества секунд). В примере, сообщения старше 1 дня: # exiqgrep -o 86400Поиск сообщений свежее указанного времени (количества секунд). В примере поиск сообщений, пришедших в течение последнего часа: # exiqgrep -y 3600Просмотр замороженных сообщений: # exiqgrep -zПодсчет замороженных сообщеий: # exiqgrep -zcПросмотр заблокированных сообщений: # exiqgrep -xПодсчет заблокированных сообщеий: # exiqgrep -xПросмотр только идентификаторов всех сообщений: # exiqgrep -i Операции с очередями писемСледующие команды могут пригодиться в процессе обработки очереди писем (исполняются от имени суперпользователя) Получить число сообщений, находящихся в очереди:# exim -bpcПринудительно повторить попытку отправки конкретного письма (с конкретным # exim -MВыполнить обработку очереди: # exim -qfВыполнить обработку очереди и попытаться сбросить "замороженные" письма: # exim -qffПросмотреть логи для указанного сообщения: # exim -MvlПросмотреть тело сообщения: # exim -MvbПросмотреть заголовки сообщения: # exim -MvhУдалить сообщение из очереди, не отправляя сообщений об ошибке: # exim -MrmУдалить из очереди и отправить отправителю диагностику о невозможности доставки: # exim -MgУдалить из очереди все сообщения, старше чем 86400 секунд (1 сутки): # exiqgrep -o 86400 -i | xargs exim -MrmОчистить все замороженные сообщения из очереди: # exipick -zi | xargs exim -MrmОчистить все сообщения из очереди: # exipick -i | xargs exim -MrmПринудительная рассылка всей почты в очереди. (Запуск очереди): # exim -q -vЗапуск очереди только для локальных доставок: # exim -ql -vУдалить сообщение из очереди: # exim –MrmУдалить все заблокированные сообщения из очереди: # exipick -zi | xargs exim -MrmУдалить все сообщения из очереди: # exipick -i | xargs exim -Mrm или exim -bpr | awk {'print $3'} | xargs exim -MrmУдалить все заблокированные сообщения: # exiqgrep -z -i | xargs exim –Mrm или exim -bpr | grep frozen | awk {'print $3'} | xargs exim -MrmУдалить все сообщения, старше 5 дней (86400 * 5 = 432000 секунд): # exiqgrep -o 432000 -i | xargs exim -MrmЗаблокировать (заморозить) все письма от указанного отправителя: # exiqgrep -i -f user@example.tld | xargs exim -MfУдалить все письма от указанного отправителя: # exiqgrep -i -f user@example.tld | xargs exim -MrmЗаблокировать (заморозить) сообщение: # exim -MfРазблокировать сообщение: # exim -MtДоставить сообщение, вне зависимости от состояния блокировки или времени повторной доставки (принудительная доставка сообщения): # exim –MДоставить сообщение, только если достигнуто время для повторной доставки: # exim -McПринудительно остановить сообщение с формулировкой «отменено администратором»: # exim –MgПросмотр заголовки сообщений: # exim -MvhПросмотр тела сообщений: # exim -MvbПросмотр логов сообщения: # exim -MvlДобавить получателя в сообщение: # exim -MarИзменить адрес отправителя сообщения: # exim -MesПоиск сообщений отправленных с определенного IP адреса: # exigrep '<= .* \[12.34.56.78\] ' /path/to/exim_logПоиск сообщений отправленных на определенный IP адрес: # exigrep '=> .* \[12.34.56.78\]' /path/to/exim_logДанный пример ищет сообщения содержащие символы «=>», и отправленные на адрес «user@domain.tld», далее по конвейеру, результат передается команде grep, которая из полученного результата выбирает строки, содержащие «<=» с информацией об отправителе, почтовом адресе, IP адресе, размере сообщения, ID сообщения и заголовок subject, если логгирование этой строки включено. # exigrep '=> .*user@domain.tld' /path/to/exim_log | fgrep '<='Генерировать из лог файла и показать статистику Exim: # eximstats /path/to/exim_mainlogТо-же что и выше но с более подробными данными: # eximstats -ne -nr -nt /path/to/exim_mainlogАналогично но за определенный день: # fgrep YYYY-MM-DD /path/to/exim_mainlog | eximstatsУдалить все сообщения в очереди, содержащие в теле, определенную строку: # grep -lr 'a certain string' /var/spool/exim/input/ | \sed -e 's/^.*\/\([a-zA-Z0-9-]*\)-[DH]$/\1/g' | xargs exim -MrmКомандой выше, мы проверяем содержимое каталога /var/spool/exim/input/, в поисках файлов очереди, содержащих определенную строку в теле сообщения, поскольку команда exiqgrep не умеет просматривать тело сообщений. Если вы решите удалить найденные файлы напрямую, ЭТО БУДЕТ НЕПРАВИЛЬНО, используйте предназначенные для этого команды exim.После того как вы внесли изменения в файл конфигурации, необходимо перезапустить exim, или послать рабочему процессу сигнал SIGHUP, чтобы он перечитал конфигурационный файл и изменения вступили в силу. Предпочтительней естественно отправить сигнал, нежели перезапускать приложение.kill -HUP cat /var/spool/exim/exim-daemon.pid Проверка распознавания адреса exim, и вывода роутера и транспорта который будет использоваться для доставки локальным пользователям: # exim -bt postmaster@hostname.domain.com <-- postmaster@ hostname.domain.com router = localuser, transport = local_delivery
Проверка распознавания адреса exim, и вывода роутера и транспорта который будет использоваться для доставки внешним пользователям:
# exim -bt user@mail.ruТестирование доставки сообщений внешним пользователям: # exim -v user@mail.ruДалее вводим руками заголовок письма: From: root@hostname.domain.com
To: user@mail.ru
Subject: test letter
test
^D
^C
Тестирование доставки сообщений локальным пользователям:
# exim -v postmasterДалее вводим руками заголовок письма: From: root@ hostname.domain.com
To: postmaster@ hostname.domain.com
Subject: test letter
test
^D
^C
Для сообщений, которые подозреваются в спаме удобно сначала массово,сделать -Mf, потом -Mvl, -Mvh и -Mvb для пары выбранных
наугад сообщений. Если все еще невозможно с консоли определить спам ли это (например, проблемы с кодировками или есть вложения), то
можно с помощью -Mar добавить себя в список получателей, и ускорить данное сообщение спомощью -M. Когда все наконец станет ясно,
то либо -Mrm, либо -Mt
Примеры в удалении спамерской почты из очередиПросмотр количества сообщений в очереди:# exim –bpcПросмотр активных отправителей: # exim -bp | awk '{print $4}' | sort | uniq -c | sort -rn 126 <>
394 name@domain.com
……………………
Подсчет количества сообщений в очереди от конкретного отправителя:
# exiqgrep -i -f name@domain.com | wc -l 396
Просмотр ID-сообщений от конкретного отправителя:
# exiqgrep -i -f name@domain.com | less 1VJPb5-0000Mu-5y
1VJPbG-0000OP-IB
1VJZ8s-0003QA-J4
……………………
Как правило, при просмотре тела письма мы видим, что это спам:
# exim –Mvb 1VJPb5-0000Mu-5y # exim –Mvb 1VJPbG-0000OP-IB # exim –Mvb 1VJZ8s-0003QA-J4Так же можно просмотреть заголовок сообщения: # exim –Mvh 1VJPb5-0000Mu-5yЛоги сообщения: # exim –Mvl 1VJPb5-0000Mu-5yПоэтому нам необходимо удалить все письма от указанного отправителя: # exiqgrep -i -f name@domain.com | xargs exim -MrmПросмотр доменов и количества писем посланных на этот домен, но отклоненных получателем: # tail -3000 /var/log/exim_mainlog |grep 'rejected RCPT' |awk {print$4}|awk -F\[ '{print $2} '|awk -F\] '{print $1} '|sort | uniq -c | sort -k 1 -nr | head -n 5Проверка спамят ли из /tmp или /home: # tail -f /var/log/exim_mainlog | grep tmp # tail -f /var/log/exim_mainlog | grep homeУдаление писем ОТ или ДЛЯ <>: # exim -bpr | grep "<>" | awk '{print $3}' | xargs exim -MrmУдаление писем ОТ или ДЛЯ # exim -bpr |grep "domain.com" | awk {'print $3'} | xargs exim -MrmПросмотр количества писем ОТ или ДЛЯ в очереди: # exim -bpr | grep "<*@*>" | awk '{print $4}'|grep -v "<>" | sort | uniq -c | sort –nПросмотр IP-адресов, которые подключены на 25 порт: # netstat -plan|grep :25|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sortПросмотр количества писем и доменов на которые отправляются эти письма: # exim -bp | exiqsumm | moreПросмотр количества замороженных сообщений: # exim -bpr | grep frozen | wc –lПуть к скриптам которые отправляют почтовые сообщения: # cd /var/spool/exim/input/ egrep "X-PHP-Script" * -R Главная > Программы > Exim |