2016-07-14 5 views
0

Я пытаюсь сжать один файл sql, используя приведенную ниже команду tar. Но он выходит из строя без каких-либо предупреждений или исключений в журнале ошибок.Ошибка команды tar при сжатии файла sql

Синтаксис: деготь --warning = нет-файлов изменилось -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 

Сообщение об ошибке: Ошибка при сжатии файла резервной копии БД

TAR Version : 1.23

Пожалуйста сделайте необходимое.

ответ

0

Я верю правильный синтаксис для целого сравнения:

if [ $? -ne 0 ] 

Оператор != используется для сравнения с шаблоном.

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


Вы можете направить вывод сообщения об ошибке в файл, а также.

деготь --warning = нет-файла изменен -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

Это то, что вам нужно отслеживать. Crontabs работают как разные пользователи. Имеет ли пользователь разрешение на запись в указанном каталоге? Также может возникнуть проблема с окружающей средой или путем. Возможно, вы напечатаете также сообщение об ошибке, которое вы распечатаете, и распечатайте переменные замещения, чтобы убедиться, что они правильно решены. –

Смежные вопросы