Вопрос: Возвращает ли mysqldump статус?


Я создаю сценарий, который создает резервную копию mysql db с помощью утилиты mysqldump. Я пишу этот скрипт в оболочке «sh». Я хотел бы зафиксировать выходной статус mysqldump в скрипте (т. Е. Если команда mysqldump завершилась неудачно или преуспела), поэтому я могу сообщить, был ли сценарий успешным или нет.

  • Возвращает ли mysqldump вывод положение дел?

  • Может кто-нибудь, пожалуйста, дайте мне инструкции о том, как это сделать?


9
2018-03-21 13:51


Источник


Вы можете просто проверить, что файл был создан, а последняя строка содержит что-то вроде -- Dump completed on ... - Если возникла проблема, тогда этого не будет. - Ewan Heming
Я создаю дамп через скрипт оболочки, поэтому я хочу, чтобы идея дампа была правильно создана или нет через некоторый статус. - krunal shah


Ответы:


Возврат mysqldump

0 for Success
1 for Warning
2 for Not Found

Он также печатает расширенное сообщение об ошибке для stderr, например.

mysqldump: Got error: 1049: Unknown database 'dbname' when selecting the database

Вы можете проверить возвращаемое значение таким образом

mysqldump -u DBuser -pDBpassword database >database.sql 2>database.err 
if [ "$?" -eq 0 ]
then
    echo "Success"
else
    echo "Mysqldump encountered a problem look in database.err for information"
fi

11
2018-03-21 14:22



я не могу вернуть сообщение об ошибке «Успех неудачи» на мой адрес электронной почты? Пожалуйста, помогите сэр ... - sqlchild


После завершения сброса проверки $? переменная оболочки. Если это 0, все пошло нормально. Else - ошибка.

# mysqldump -u aaa -d msf>/dev/null
mysqldump: Got error: 1045: Access denied for user 'aaa'@'localhost' (using password: YES) when trying to connect
# echo $?
2

1
2018-03-21 14:23