The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Примеры управлением очередью сообщений в Postfix
Инициировать внеплановый процесс отправки сообщений, присутствующих в очереди:
   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 {}
 
19.11.2009
Ключи: postfix, queue, spam, mail / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / Mail, почта / Борьба со спамом, фильтрация почты

Обсуждение [ RSS ]
  • 1.1, q (??), 14:10, 20/11/2009 [ответить]  
  • +/
    для sendmail'a подобным описанием поделитесь плз.
     
     
  • 2.4, Аноним (-), 10:20, 25/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    для sendmail почитайте про mailq
     

  • 1.2, Ночной админ (ok), 21:17, 21/11/2009 [ответить]  
  • +/
    >Записав такие домены в файл, можно вручную >отсеять нормальные домены и затем
    >разом удалить мусор из очереди:
    >   mailq| ./agr_mailq.pl|grep -f >./spamdomains.list |awk '{print $1}'\
    >| tr -d '*!'|xargs  -J{} -n1 postsuper -d {}

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

     
     
  • 2.3, gyouja (?), 16:10, 24/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    очевидно имелось в виду -I
     

  • 1.5, LeNiN (ok), 15:45, 17/10/2011 [ответить]  
  • +/
    В состав пакета Postfix в Debian/Ubuntu есть скрипт mailqfmt.pl, который формирует вывод mailq в однострочный (как и используемый в статье agr_mailq.pl, но вывод другой): http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=440814
     
  • 1.6, Антон (??), 04:42, 03/10/2012 [ответить]  
  • +/
    >Посмотреть список доменов в очереди и число сообщений для них:
    >   mailq |./agr_mailq.pl |awk '{print $7}'|cut -d'@' -f2|sort|uniq -c|sort -r -n

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

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру