mysql 데이터베이스 덤프 스크립트에 덤프된 데이터베이스를 건너뛰는 기능이 추가되었습니다.

mysql 데이터베이스 덤프 스크립트에 덤프된 데이터베이스를 건너뛰는 기능이 추가되었습니다.

내 데이터베이스를 덤프하려면 다음 스크립트를 사용하고 있습니다. 좋은 결과. 데이터베이스 테이블이 덤프되었는지 먼저 확인하고, 덤프가 있으면 건너뛰고 다음 테이블로 이동하는 기능을 추가하고 싶습니다.

DB_host=127.0.0.1
DB_user=root
DB=mydb
DB_pass=mydbpassword
DIR=/

[ -n "$DIR" ] || DIR=.
test -d $DIR || mkdir -p $DIR

echo "Dumping tables into separate SQL command files for database '$DB' into dir=$DIR"

tbl_count=0

for t in $(mysql -NBA -h $DB_host -u $DB_user -p$DB_pass -D $DB -e 'show tables')
do
    echo "DUMPING TABLE: $t"
    mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t  > $DIR/$t.sql
    (( tbl_count++ ))
done

echo "$tbl_count tables dumped from database '$DB' into dir=$DIR"

답변1

이 코드 블록을 변경하십시오.

echo "DUMPING TABLE: $t"
mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t  > $DIR/$t.sql
(( tbl_count++ ))

이와 관련하여:

echo "DUMPING TABLE: $t"
if [ -e "$DIR/$t.sql" ]; then
  echo "TABLE $DIR/$t.sql exists, skipping..."
else
  mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t  > $DIR/$t.sql
fi
(( tbl_count++ ))

관련 정보