如何判断mysql备份成功_如何判断mysqldump的成功与失败

mysql数据库的备份

用mysql的mysqldump --flush-logs --master-data=2 --single-transaction -h $host --port $port -R --quick  -u$user -p$pwd  --database test| gzip -9 > $abc.tar.gz就能实现数据备份

遇到一个问题,如何能判断mysql自己的mysqldump成功还是失败了呢,最后发现mysqldump有一个属性--log-error

这个属性可以把mysqldump的出现的warning和error日志写到指定的文件中,判断文件有没有warning信息和error信息就行

但是用临时文件似乎有点多余,能不能直接在shell里面获取musqldump的值呢

然后看到http://www.cnblogs.com/kevintian/articles/1139118.html 这篇帖子 见子目录的mysql日志

里面有一节

3.     错误日志

该日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。可以用--log-error[=file_name]选项来指定mysqld保存错误日志文件的位置。

当使用mysqld_safe启动服务器时,该脚本自动在启动项上加上--log-error但没有加上file_name,或者直接在libexec目录下使用./mysqld --user=mysql  --log-error启动服务器,此时没有给定file_name值,mysqld将使用错误日志名host_name.err 并在数据目录中写入日志文件。

将错误信息写入错误日志文件的原理是,服务器将对标准错误输出重定向到该日志文件,所以如果不指定--log-error,错误被写入标准错误输出stderr,通常标准输出为你的终端。如果在程序中有printf等语句的话,这些函数打印出的信息也被写入该日志文件。

如果执行FLUSH LOGS,错误日志用-old重新命名后缀并且mysqld创建一个新的空日志文件。如第一次生成的错误日志为:linux-8tpn.err。执行该命令后将该文件重命名为:linux-8tpn.err-old。

这说明我们只要在不指定--log-error的情况下,能获取到stderr的信息就可以了。那如何获取stderr的信息呢

参考http://my.oschina.net/qihh/blog/55308进行详细了解 发现还是实现不了通过变量来获取mysqldump的异常信息,就采用--log-error的方式了 grep "mysqldump1" abc.log && ./test2.sh || ./test1.sh 用以上命令可以实现在abc.log中查找字符串mysqldump1,如果查到的话就执行./test2.sh  否则执行./test1.sh (grep "Hello Would" temp && echo "Hello Would" || echo "Hello China") 通过以上方式可以到日志文件中查找是否有error,有的话就说明备份失败。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值