Linux
將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
您正在從 重定向錯誤
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
您似乎試圖重定向標準輸出 (">") 兩次,這是行不通的。
也許你想要這個:
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