Инициировать внеплановый процесс отправки сообщений, присутствующих в очереди: 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 {}
xargs: invalid option -- J Опечатка?
Я бы заменил {print $7} на {print $NF}