Mysqldump возвращает статус?

14

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

  • Mysqldump возвращает состояние вывода?

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

крунал шах
источник
Вы можете просто проверить, что файл был создан и последняя строка содержит что-то вроде: -- Dump completed on ...- Если возникла проблема, то это не так.
Эван Хеминг,
Я создаю дамп с помощью сценария оболочки, поэтому я хочу получить идею, что дамп создан правильно или нет через какой-то статус.
крунал шах

Ответы:

14

MySQL возвращается

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
user9517
источник
я не могу вернуть сообщение об ошибке «Успешный отказ» на мою электронную почту? Пожалуйста, помогите, сэр ...
sqlchild
1

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

# 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
Дмитрий Леоненко
источник