SQL 덤프 오류를 파일에 저장

SQL 덤프 오류를 파일에 저장

error오류가 발생하면 파일로 저장하고 싶습니다 . 그러나 파일로 리디렉션하지 않는 동안 오류가 발생했습니다.

아래 오류가 발생하고 파일로 리디렉션되지 않습니다.

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)

나의 시도

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

답변1

gzip가 아닌 에서 오류를 리디렉션하고 있었습니다 mysqldupmp.

다음과 같이 파이프 앞에 리디렉션을 배치합니다.

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

답변2

표준 출력(">")을 두 번 리디렉션하려고 시도했지만 작동하지 않는 것 같습니다.

아마도 당신은 이것을 원할 것입니다 :

     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 

관련 정보