如何判断mysqldump的成功与失败
2013-01-19 21:56
295 查看
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的信息呢
参考/article/3479577.html进行详细了解
发现还是实现不了通过变量来获取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,有的话就说明备份失败。
用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的信息呢
参考/article/3479577.html进行详细了解
发现还是实现不了通过变量来获取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,有的话就说明备份失败。
相关文章推荐
- socket异步通信__如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto成功(失败)
- SOCKET通信—如何设置成非阻塞模式、该模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto成功(失败)
- asp中如何判断数据插入成功失败
- 如何避免大量的成功失败判断,如何不再纠结发现错误时是否该打印日志
- SOCKET通信—如何设置成非阻塞模式、该模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto成功(失败)
- socket异步通信-如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto
- socket异步通信-如何设置成非阻塞模式、非阻塞模式下判断connect成功(失败)、判断recv/recvfrom成功(失败)、判断send/sendto
- Android--判断发送短信后的状态/发送成功Or发送失败
- 地址接口获取数据失败时,应该注意的,应判断查询时否成功
- 如何交叉编译开源库-->编译c-ares库从失败到成功的过程[ocean]
- shell 中如何判断前一个命令是否执行成功
- opencv如何判断图片是否加载成功
- python 如何判断调用系统命令是否执行成功
- PHP如何获取刚插入数据的ID 和判断SQL语句是否成功执行
- 如何判断statement插入是否成功
- linux bc命令如何判断成功执行
- shell 中如何判断前一个命令是否执行成功
- 如何判断配置的JDK和AndroidSDK是否成功
- MySQL使用mysqldump备份数据库脚本手工执行成功 crontab定时却失败的解决方法
- jdbcTemplate在执行插入操作的时候如何判断是否插入成功?