comando mail enviando corpo do email como anexo [RESOLVIDO]

1. comando mail enviando corpo do email como anexo [RESOLVIDO]

Augusto S. C. de Jesus
augustoscj92

(usa Ubuntu)

Enviado em 23/06/2016 - 03:39h

Fala pessoal,

Estou quebrando a cabeça em algo "simples" aqui.

Tenho um script que faz um scp de um arquivo de outro servidor, após pegar esse arquivo, ele dá um cat para a variável do arquivo temporário do corpo e envia o email, porém, esse arquivo que deveria ser o corpo, vem anexado com um código com a extensão .bin
Ex: ATT0000.bin

mesmo se executo o comando direto na CLI acontece o mesmo.

basicamente o script é assim (modifiquei algumas coisas para proteção de dados):

MAIL_TO="mail1,mail2,mail3.mailx"
MAIL_BODY_FILE="/var/home/user/script/tmpfile/tmp_body.txt"

if [ -e ${MAIL_BODY_FILE} ]; then
rm ${MAIL_BODY_FILE}
fi

touch ${MAIL_BODY_FILE}

if [ -e home/user/script/tmpfile/arquivo_a_ser_copiado.txt ]; then
rm home/user/script/tmpfile/arquivo_a_ser_copiado.txt
fi
sshpass -p '$senha' scp user@ip:/home/user/scripts/tmpfiles/arquivo_a_ser_copiado.txt /home/user/monitoring/scripts/tmpfiles/arquivo_a_ser_copiado.txt

cat /home/user/scripts/tmpfiles/arquivo_a_ser_copiado.txt >> ${MAIL_BODY_FILE}

mail -s "${MAIL_SUBJECT}" ${MAIL_TO} < ${MAIL_BODY_FILE}



  


2. Re: comando mail enviando corpo do email como anexo

Paulo
paulo1205

(usa Ubuntu)

Enviado em 24/06/2016 - 18:04h

O arquivo contém caracteres acentuados, ou outro conteúdo que não seja texto puro em ASCII?


3. Re: comando mail enviando corpo do email como anexo

Augusto S. C. de Jesus
augustoscj92

(usa Ubuntu)

Enviado em 24/06/2016 - 19:19h

O arquivo contém caracteres acentuados, ou outro conteúdo que não seja texto puro em ASCII?


Sim, Paulo!
Era adicionado ^M ao final de cada linha.
removi com o seguinte comando e deu certo:
vim -c ":%s/\r//g" ${MAIL_BODY_FILE} -c ":wq!"

porém, estou tendo outro problema ao setar o script pelo crontab. O scp não é executado:
sshpass -p '$senha' scp user@ip:/home/user/scripts/tmpfiles/arquivo_a_ser_copiado.txt /home/user/monitoring/scripts/tmpfiles/


ao verificar o log, dá a mensagem que o comando sshpass não foi encontrado, mas quando executado diretamente no bash, funciona normalmente... saberia dizer o pq ?


4. Re: comando mail enviando corpo do email como anexo [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/06/2016 - 00:04h

Diferença no valor da variável de ambiente PATH?

Pode até não ser o seu caso, mas é um problema comum. O crontab define um valor bem simples para a variável PATH (possivelmente contendo apenas os diretórios /bin e /usr/bin). Se o programa que você quiser executar estiver num local diferentes, ou você coloca o caminho completo na linha do crontab, ou define um valor diferente para PATH na hora de executar o comando.


5. Re: comando mail enviando corpo do email como anexo [RESOLVIDO]

Augusto S. C. de Jesus
augustoscj92

(usa Ubuntu)

Enviado em 27/06/2016 - 01:32h

Muito obrigado, Paulo!
coloquei todo o Path do sshpass e deu certo!

/usr/local/bin/sshpass -p '$senha' scp user@ip:/home/user/scripts/tmpfiles/arquivo_a_ser_copiado.txt /home/user/monitoring/scripts/tmpfiles/ 







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts