URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 61197
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Примеры управлением очередью сообще..."

Отправлено auto_tips , 20-Ноя-09 14:10 
Инициировать внеплановый процесс отправки сообщений, присутствующих в очереди:
   postqueue -f

Показать содержимое очереди:
   postqueue -p

Инициировать внеплановую доставку накопившихся в очереди сообщений для домена test.ru:
   postqueue -s test.ru

Постмотреть параметры сообщения и причины проблем с отправкой для заданного идентификатора сообщения в очереди:
   postcat -q 54D4E563B51

Очистить из очереди домены по заданной маске:
   mailq| ./agr_mailq.pl|grep -E 'MAILER-DAEMON|yahoo|\.de|\.fr|\.it|\.ch'|awk '{print $1}'\
     | tr -d '*!'|xargs  -J{} -n1 postsuper -d {} deferred
   mailq| ./agr_mailq.pl|grep -E 'MAILER-DAEMON|yahoo|\.de|\.fr|\.it|\.ch'|awk '{print $1}'\
     | tr -d '*!'|xargs  -J{} -n1 postsuper -d {}


где agr_mailq.pl скрипт следующего содержания:

   #!/usr/bin/perl
   my $cur_line="";
   while(<>){
       chomp();
       if (/^[\w\d\*]+\s+\d+/){
           print "$cur_line\n";
           $cur_line=$_;
       } else {
           s/\s+//s;
           $cur_line .= "\t" . $_;
       }
   }


Отфильтровать и удалить из очереди только сообщения на 5 и более адресов разом:
   mailq |./agr_mailq_big.pl| tr -d '*!'|xargs  -J{} -n1 postsuper -d {}

где agr_mailq_big.pl:

   #!/usr/bin/perl
   my $cur_line="";
   my $counter=0;
   while(<>){
       chomp();
       if (/^[\w\d\*]+\s+\d+/){
           if ($counter >= 5){
               print "$cur_line\n";
           }
          $cur_line=$_;
           $counter=0;
       } else {
           s/\s+//s;
           $cur_line .= "\t" . $_;
           $counter++;
       }
   }

Посмотреть список доменов в очереди и число сообщений для них:
   mailq |./agr_mailq.pl |awk '{print $7}'|cut -d'@' -f2|sort|uniq -c|sort -r -n

Записав такие домены в файл, можно вручную отсеять нормальные домены и затем разом удалить мусор из очереди:

   mailq| ./agr_mailq.pl|grep -f ./spamdomains.list |awk '{print $1}'\
      | tr -d '*!'|xargs  -J{} -n1 postsuper -d {}

URL:
Обсуждается: https://www.opennet.ru/tips/info/2227.shtml


Содержание

Сообщения в этом обсуждении
"Примеры управлением очередью сообщений в Postfix"
Отправлено q , 20-Ноя-09 14:10 
для sendmail'a подобным описанием поделитесь плз.

"Примеры управлением очередью сообщений в Postfix"
Отправлено Аноним , 25-Ноя-09 10:20 
для sendmail почитайте про mailq

"Примеры управлением очередью сообщений в Postfix"
Отправлено Ночной админ , 21-Ноя-09 21:17 
>Записав такие домены в файл, можно вручную >отсеять нормальные домены и затем
>разом удалить мусор из очереди:
>   mailq| ./agr_mailq.pl|grep -f >./spamdomains.list |awk '{print $1}'\
>| tr -d '*!'|xargs  -J{} -n1 postsuper -d {}

xargs: invalid option -- J
Опечатка?


"Примеры управлением очередью сообщений в Postfix"
Отправлено gyouja , 24-Ноя-09 16:10 
очевидно имелось в виду -I

"Примеры управлением очередью сообщений в Postfix"
Отправлено LeNiN , 17-Окт-11 15:45 
В состав пакета Postfix в Debian/Ubuntu есть скрипт mailqfmt.pl, который формирует вывод mailq в однострочный (как и используемый в статье agr_mailq.pl, но вывод другой): http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440814

"Примеры управлением очередью сообщений в Postfix"
Отправлено Антон , 03-Окт-12 04:42 
>Посмотреть список доменов в очереди и число сообщений для них:
>   mailq |./agr_mailq.pl |awk '{print $7}'|cut -d'@' -f2|sort|uniq -c|sort -r -n

Я бы заменил {print $7} на {print $NF}