E-mail não está funcionando com o script bash

0

Estou tentando monitorar nosso transportador de tronco voip sip se ele ficar indisponível Eu recebo um e-mail do script abaixo, o comando no script está funcionando bem criar arquivo de log em / tmp / checkpeers mas script não está enviando e-mail tentei muitas opções, como eles podem ser vistos no script abaixo, eu também testei o agente de entrega de email é habilitar e eu enviei alguns e-mails de teste usando e-mail "s" [email protected] funciona, alguém por favor pode ajudar com isso.

#!/bin/sh

# Check for Offline SIP Peers
#peername=vitel-inbound2/kdc_gatine
rm -f /tmp/checkPeers
#/usr/sbin/asterisk -rx 'sip show peers' | grep UNKNOWN >/tmp/checkPeers
#asterisk -rx "sip show peers" | grep vitel-inbound2/kdc_gatine | grep -v OK

asterisk -rx "sip show peers" | grep vitel-inbound2/kdc_gatine | grep -v OK >/tmp/checkpeers

if [ -s "/tmp/checkPeers" ]; then
mail -s "Vitelity Inbound SIP Connection OffLine please Check" [email protected] < /tmp/checkpeers
#[EMAIL="[email protected]"][email protected][/EMAIL] </tmp/checkpeers

#SUBJECT="Vitelity Inbound SIP Connection OffLine please Check"
#EMAILID="[email protected]" </tmp/checkPeers
#$SUBJECT
#$EMAILID

fi
    
por user313162 22.02.2018 / 19:29

2 respostas

1

Meu palpite é que o arquivo que você está criando não corresponde ao arquivo que você está testando. Estas são as linhas que estou me referindo.

asterisk -rx "sip show peers" | grep vitel-inbound2/kdc_gatine | grep -v OK >/tmp/checkpeers
if [ -s "/tmp/checkPeers" ]; then

no primeiro você está criando o arquivo como /tmp/checkpeers , mas no segundo, você está testando em relação a /tmp/checkPeers . Observe a diferença entre as minúsculas p e as maiúsculas P ? Como os arquivos no Linux fazem distinção entre maiúsculas e minúsculas, eles precisam ser os mesmos. Certifique-se de que os nomes dos arquivos correspondam aqui e em outros lugares em seu script.

Boa sorte.

    
por 22.02.2018 / 21:05
0

Além da observação do @vertex, eu evitaria arquivos temporários completamente

data=$(asterisk -rx "sip show peers" | grep vitel-inbound2/kdc_gatine | grep -v OK)

if [ -n "$data" ]; then
    subject="Vitelity Inbound SIP Connection OffLine please Check"
    recipients="[email protected]"

    echo "$data" | mail -s "$subject" "$recipients"
fi

Se você estiver bem com arquivos temporários, então DRY e use uma variável para armazenar o nome do arquivo:

tmp=$(mktemp -t checkPeers.XXXX)
trap "rm -f $tmp" EXIT            # remove when script exits

asterisk -rx "sip show peers" | grep vitel-inbound2/kdc_gatine | grep -v OK >"$tmp"

if [ -s "$tmp" ]; then
    mail -s "Vitelity Inbound SIP Connection OffLine please Check" [email protected] <"$tmp"
fi
    
por 22.02.2018 / 21:21