Назад | Перейти на главную страницу

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

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

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

После завершения дампа проверьте $? переменная оболочки. Если 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