Quero salvar error
se 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