我正在尝试使用以下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
请做好必要的事。
答案 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