2017-02-07 2 views
0

У меня есть сценарий MySql, который проходит через вкладку cron в centos linux.Отправить письмо по ошибке Sql в crontab centos

CALL some_stored_procedure(); 

есть файл оболочки, который вызывает этот скрипт MySql с именем callsqlscript.sh

mysql -uusername -ppassword db_name </home/scripts/SqlScrip.sql>> /var/log/SqlscriptsLog.txt 

вот моя запись кронтаб

*/1 * * * * root /opt/scripts/callsqlscript.sh 2>&1 | mail -s "SQL Errors" [email protected] 

Я получаю письма каждый минута. Я хочу, чтобы почта отправлялась только в том случае, если в SQL-скрипте возникла ошибка.

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

Благодаря

ответ

1

Просто используйте 1> /dev/null

В сообщении электронной почты состоит из выходе команды. Если их нет, отправка почты не производится. Выход состоит из stdout и stderr

Так, изменив команду

/opt/scripts/callsqlscript.sh 1> /dev/null 

Вы перенаправлять stdout к /dev/null (нормальный выход), сохраняя при этом stderr (ошибки) активно. Если что-то будет сделано в stderr, это будет отправлено по электронной почте на ваш адрес электронной почты

+0

Спасибо вам за помощь. Но я по-прежнему получаю электронные письма ни с чем. –

+0

** Корпус нулевого сообщения; надеюсь, что все в порядке ** Я получаю это по электронной почте –

Смежные вопросы