salvando erro de dump sql em um arquivo

salvando erro de dump sql em um arquivo

Quero salvar errorse ocorrer algum erro em um arquivo. Mas erro ao não redirecionar para o arquivo.

Recebo o erro abaixo e ele não está redirecionando para o arquivo.

mysqldump: Couldn't execute 'SHOW FIELDS FROM `v_comloc`': View 'nextgendev_new.v_comloc' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them (1356)

Minha tentativa

HOST="localhost"
PASS="aaaaa"
LOCAL_DIR="/userBackupDrive/backupDatabases/"           #Modified local directory
DAY="`date +%a`"
DATE="`date +%F`"
USER="root"

for db in `mysql -h $HOST -u $USER -p$PASS -e "show databases"`
     do
         mysqldump --opt --routines --single-transaction -p$PASS -u $USER -h $HOST --databases $db | gzip -9 > $LOCAL_DIR$db.$DAY.sql.gz  2>>/var/log/failedJobs/mysqlCronJob.log  

                RESULT=$?
                if [ $RESULT -eq 0 ] ; then
                        echo
                else
                        echo "$DATE__  $db backup not successful" >> /var/log/failedJobs/dbError.log

                fi
     done

Responder1

Você estava redirecionando erros de gzip, não de mysqldupmp.

Coloque o redirecionamento antes do pipe, assim:

mysqldump --opt --routines --single-transaction -p$PASS -u $USER -h $HOST \
          --databases $db 2>>/var/log/failedJobs/mysqlCronJob.log \
         | gzip -9 > $LOCAL_DIR$db.$DAY.sql.gz

Responder2

Parece que você está tentando redirecionar a saída padrão (">") duas vezes, o que não funciona.

Talvez você queira isso:

     mysqldump --opt --routines --single-transaction -p$PASS -u $USER -h $HOST --databases $db 2>/var/log/failedJobs/mysqlCronJob.log | gzip -9 > $LOCAL_DIR$db.$DAY.sql.gz 

informação relacionada