Não é possível anexar um arquivo .txt ou um arquivo .log ao comando mail e mailx

0

Estou tentando anexar um arquivo .log ou um arquivo .txt ao comando mail para enviar um email assim que meu script ksh for executado. Eu sou incapaz de usar o comando mutt como ele não foi instalado na minha máquina e não devo instalá-lo. Eu tentei muitas maneiras de googling que não me ajudou a ter sucesso.

Aqui está a minha exigência, eu preciso executar algumas consultas de 10 sql e o resultado precisa enviar o email via anexo. Eu tenho Check.ksh e estou executando isso usando o comando nohup .

nohup Check.ksh > Valid_Check.log 2>&1 &

Em Check.ksh

typeset var TO="[email protected]";
typeset var SUB="Report";
typeset var BODY="Check Completed";
typeset var ATTACHMENT=${FILE_PATH}/Valid_Check.log

if [ -f "${ATTACHMENT}" ]; then 
echo "Log file exist";
else
echo "No Log File";
fi

uuencode Valid_Check.log Valid_Check.log | mail -s "${SUB}" "${BODY}" ${TO}

e experimentamos o abaixo também

#mailx -s "${SUB}" "${TO}" "${BODY}" < ${FILE_PATH}/Valid_Check.log

#cat ${FILE_PATH}/Valid_Check.log | mailx -s "${SUBJECT}" "${TO}" "${BODY}";

Acima do código que gera um erro como "Válido ... Usuário desconhecido"

Quaisquer entradas seriam úteis ou qualquer outra abordagem simples / fácil?

Obrigado,

    
por Samah 14.04.2017 / 07:59

1 resposta

0

Se você tem um mailx suficiente, use a opção -a para adicionar um anexo.

mailx -s "$SUB" -a "Valid_Check.log" "$TO" <<<"$BODY"

Veja também o link

Se você está irremediavelmente preso em um milênio anterior e não tem nenhum software que possa manipular anexos adequados, os dados do uuencode devem ser simplesmente anexados ao corpo.

( echo "$BODY"; echo; uuencode Valid_check.log Valid_check.log ) |
mailx -s "$SUB" "$TO"

A abordagem básica sofre de uma condição de corrida, no entanto - a existência do arquivo de saída indica que o trabalho cron tem iniciado, não concluído. Colocar o comando mail no final do cron job corrige isso; então, o email só será enviado quando a etapa anterior terminar.

    
por 14.04.2017 / 15:06