#linux #shell #email
#linux #оболочка #Адрес электронной почты
Вопрос:
Я создал файл .sh для записи определенных слов в журнал и отправлю письмо на определенный идентификатор электронной почты (установите Cronjob для запуска этого скрипта каждые 1 час). Он работает так, как ожидалось, но проблема в том, что если ошибки нет, я также получаю пустую почту.
Необходимо получить почту, если мы обнаружили ошибку, и в файле DBError есть содержимое. Пожалуйста, помогите мне решить эту проблему.
#!/bin/bash
if [ ! -e DBErrors ] ; then
grep "sqlException" /opt/apps/cms/logs/cms-runtime.log > DBErrors
mail -s "ALERT: sqlException" Jayaram.Ponnusamy@gmail.com < DBErrors
else
comm -23 <(grep "sqlException" /opt/apps/cms/logs/cms-runtime.log) DBErrors | mail -s "ALERT: sqlException" Jayaram.Ponnusamy@gmail.com
grep "sqlException" /opt/apps/cms/logs/cms-runtime.log > DBErrors
fi
Спасибо
Джаярам
Комментарии:
1. Вы имеете в виду, что вам нужно электронное письмо, отправленное в
if
блоке или вelse
одном?
Ответ №1:
Не могли бы вы попробовать это;
#!/bin/bash
dbErrors="/tmp/DBErrors"
if [ ! -e "$dbErrors" ]; then
grep "sqlException" /opt/apps/cms/logs/cms-runtime.log > $dbErrors
mailbody=$(grep "sqlException" /opt/apps/cms/logs/cms-runtime.log); [[ -n "$mailbody" ]] amp;amp; mail -s "ALERT: sqlException" Jayaram.Ponnusamy@gmail.com
else
mailbody=$(comm -23 <(grep "sqlException" /opt/apps/cms/logs/cms-runtime.log| sort -n) <(sort -n "$dbErrors")); [[ -n "$mailbody" ]] amp;amp; mail -s "ALERT: sqlException" Jayaram.Ponnusamy@gmail.com
grep "sqlException" /opt/apps/cms/logs/cms-runtime.log > $dbErrors
fi
Комментарии:
1. Извините, что все еще получаю пустую почту
2. @JayaramPonnusamy: Я обновил ans. не могли бы вы попробовать это;
3. Привет, Мустафа, все еще получаю то же «Пустое сообщение тела»