Невозможно прикрепить файл .txt или .log к почте и команде mailx

Я пытаюсь прикрепить файл .log или .txt к команде mail, чтобы отправить электронное письмо, как только мой сценарий ksh выполнен. Я не могу использовать команду mutt, поскольку она не установлена ​​на моем компьютере, и я не должен ее устанавливать. Я пробовал много способов с помощью поиска в Google, но это не помогло мне добиться успеха.

Вот мое требование: мне нужно выполнить около 10 SQL-запросов, а результат нужно отправить по электронной почте во вложении. У меня есть Check.ksh , и я запускаю его с помощью команды nohup .

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

В Check.ksh

typeset var TO="name@domain.com";
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}

и также попробовал следующее

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

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

Приведенный выше код выдает ошибку типа «Действителен ... Пользователь неизвестен»

Любые вводные данные могут быть полезны или любой другой простой / легкий подход?

Спасибо,

0
14.04.2017, 09:36
1 ответ

Если у вас достаточно недавний mailx , используйте параметр -a , чтобы добавить вложение .

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

См. Также https://access.redhat.com/solutions/104833

Если вы безнадежно застряли в прошлом тысячелетии и у вас нет программного обеспечения, которое может обрабатывать правильные вложения, данные uuencode должны просто быть добавленным к телу.

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

Однако базовый подход страдает от состояния гонки - наличие выходного файла указывает на то, что задание cron было запущено, не завершено. Поместите команду mail в конце задания cron, чтобы исправить это; тогда электронное письмо будет отправлено только после завершения предыдущего шага.

0
28.01.2020, 04:47

Теги

Похожие вопросы