Как я могу отправлять сообщения об ошибках в файл при запуске Mysqldump? - PullRequest
0 голосов
/ 20 ноября 2011

Я довольно новичок в использовании MySql из командной строки, поэтому мне очень нужен здесь совет.

По сути, я написал скрипт bash, который выполняет резервное копирование моих баз данных в выбранные дни через cronработа.Это работает просто отлично, но я хотел бы знать, если есть какой-нибудь способ, которым я могу направить любые сообщения об ошибках от mysqldump, отправленные мне по электронной почте, на случай, если что-то не так.Вот ключевая часть кода, который выполняет дамп:

mysqldump -u user -h localhost --all-databases | gzip -9 > $filename

Есть ли способ установить условие, которое будет перехватывать любые сообщения об ошибках и отправлять их по электронной почте?

Blain

Ответы [ 2 ]

1 голос
/ 20 ноября 2011

Использование:

mysqldump -u user -h localhost --all-databases 2> error.log | gzip -9 > $filename 

В частности, в bash вы можете перенаправить любой выходной дескриптор на что-то другое, используя синтаксис n>, заметьте НЕДОСТАТОК пробела между n и> :)

Пошлите по электронной почте error.log себе :) 1007 *

0 голосов
/ 20 ноября 2011

Вы сказали, что используете cron для запуска задания. Это здорово, потому что в cron уже есть встроенная функция отправки почты - нет необходимости писать во временный файл или использовать вспомогательные скрипты. Просто сделай это:

MAILTO=yourname@example.com
00 14 * * * mysqldump ... | gzip -9 >filename # or invoke a script here

И, как по волшебству, любой результат работы будет отправлен вам по почте.

...