Я создаю сценарий, который создает резервную копию базы данных mysql с помощью утилиты mysqldump. Пишу этот скрипт в оболочке "sh". Я хотел бы зафиксировать статус вывода mysqldump в сценарии (т.е. если команда 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