Tente
exiqgrep -f 'root@hostname' -i | xargs exim -M
Você também pode ver uma ferramenta mais poderosa exipick
.
Consegui colocar minhas mãos nisso:
#!/bin/bash
######### Edit here ##########
[email protected] # Set this to your email id to receive alerts on mail queue
_limit=100 # Set the limit here
##############################
clear;
_result="/tmp/eximqueue.txt"
_queue="'exim -bpc'"
if [ "$_queue" -ge "$_limit" ]; then
echo "Current queue is: $_queue" > $_result
echo "Summary of Mail queue" >> $_result
echo "'exim -bp | exiqsumm'" >> $_result
mail -s "Number of mails on 'hostname' : $_queue" $_mail_user < $_result
cat $_result
fi
rm -f $_result
Funciona como um encanto. Agora eu só tenho uma pergunta para alguém um pouco mais avançado que eu. Supondo que a fila tenha explodido com spam, a mensagem acima será apenas na parte de trás da fila - por isso, queremos forçá-la a ser enviada antes de qualquer outra coisa essencialmente. Pelo que entendi, podemos usar o seguinte para forçar a entrega de uma mensagem:
/usr/sbin/exim -M email-id
Alguém aqui sabe como eu poderia extrair o email-id da função de email de scripts e depois executar o comando acima com ele? Algo ao longo das linhas de:
_message_id = "'exiqgrep -f root@hostname'"
/usr/sbin/exim -M "$_message_id"
Tags bash exim shell-script