压缩sql文件时tar命令失败

时间:2016-07-14 03:42:49

标签: sql-server linux unix

我正在尝试使用以下tar命令压缩一个sql文件。但是,如果错误日志中没有任何警告或异常,它就会失败。

  

语法:tar --warning = no-file-changed -zcvf $ bkpdir $ {hadoopdb} mysqldb $ bkpday.sql.tar.gz $ bkpdir $ {hadoopdb} mysqldb < / EM> $ bkpday.sql

执行上述命令时是否有任何方法可以捕获错误。

我的代码段看起来像这样。

tar --warning=no-file-changed -zcvf $bkpdir${hadoopdb}_mysqldb_$bkpday.sql.tar.gz $bkpdir${hadoopdb}_mysqldb_$bkpday.sql



 if [ "$?" != 0 ]
   then
      echo "Error while compressing the db backup file"
      errmsg
      exit 1
   fi

错误消息:压缩db备份文件时出错

TAR Version : 1.23

请做好必要的事。

1 个答案:

答案 0 :(得分:0)

我相信整数比较的正确语法是:

if [ $? -ne 0 ]

!=运算符用于模式匹配。

http://tldp.org/LDP/abs/html/comparison-ops.html

您也可以将错误输出定向到文件。

  

tar --warning = no-file-changed -zcvf   $ bkpdir $ {hadoopdb} MySQLdb的 $ bkpday.sql.tar.gz   $ bkpdir $ {hadoopdb} mysqldb $ bkpday.sql 2&gt; tar_sql.err

会将错误写入tar_sql.err文件。

您也可以打开-e模式。在此模式下,脚本运行的任何命令都会返回一个非零的exitcode,这将导致脚本自身立即终止并出现错误。

你可以在shebang系列中做到这一点:

#!/bin/sh -e