mysqldump是否返回状态?


14

我正在创建一个脚本,该脚本使用mysqldump实用程序备份mysql数据库。我正在外壳程序“ sh”中编写此脚本。我想在脚本中捕获mysqldump的输出状态(即mysqldump命令失败还是成功),以便我可以报告脚本是否成功。

  • mysqldump是否返回输出状态?

  • 有人可以告诉我如何执行此操作吗?


您只需要检查文件是否已创建,最后一行是否包含类似内容-- Dump completed on ...-如果出现问题,就不会出现这种情况。
Ewan Heming

我正在通过shell脚本创建转储,所以我想正确地创建转储或不通过某些状态转储。
krunal shah 2011年

Answers:


14

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

我无法将“失败成功”错误消息返回到我的电子邮件?请帮助先生...
sqlchild 2012年

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.