2016-07-14 11 views
0

以下のtarコマンドを使用して1つのsqlファイルを圧縮しようとしています。しかし、エラー・ログに警告や例外がなくても、障害が発生しています。SQLファイルを圧縮するときにTarコマンドが失敗しました

構文:タール--warning = NO-ファイル変更-zcvf $ bkpdir $ {hadoopdb} のMySQLdb $ bkpday.sql.tar.gz $ bkpdir $ {hadoopdb} のMySQLdb $ 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

Iは、整数比較のための適切な構文は信じ:

if [ $? -ne 0 ] 

!=オペレータは、パターンマッチングのために使用されます。

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


あなたにもファイルにエラー出力を指示することができます。

タール--warning = NO-ファイル変更-zcvf $ bkpdir $ {hadoopdb} のMySQLdb $ bkpday.sql.tar.gz $ bkpdir $ {hadoopdb} のMySQLdb $ bkpday.sql 2> tar_sql.err

は、tar_sql.errファイルにエラーを書き込みます。


-eモードをオンにすることもできます。このモードでは、スクリプトが実行する任意のコマンドがゼロ以外の終了コードを返すコマンドを実行すると、スクリプト自体がエラーで直ちに終了します。

はあなたのシェバング行にそれを行うことができます。

#!/bin/sh -e 
+0

は「-ne」でスクリプトを修正して、コメントを追加「-e」パラメータスクリプトが正常に実行されました。 –

+0

しかし、これは例外を伴うcronjobを使用してシェルスクリプトを実行しているときに発生します。**エラーメッセージ:dbバックアップファイルを圧縮中にエラーが発生しました** –

+0

Crontabは異なるユーザーとして実行されます。指定されたディレクトリに書き込む権限を持っていますか?また、環境やパスの問題がある可能性があります。印刷するエラーメッセージを表示して、置換変数を出力して、それらが正しく解決されていることを確認することもできます。 –

関連する問題