Script Bash para extrair o id da mensagem e forçar o envio

3

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"
    
por SupaMonkey 08.10.2015 / 11:26

1 resposta

1

Tente

exiqgrep -f 'root@hostname' -i | xargs exim -M

Você também pode ver uma ferramenta mais poderosa exipick .

    
por 08.10.2015 / 13:21