-1

私はこのファイルbackup_mysql.shを持っています

#!/bin/sh
for I in $(mysql --database=db1 -e 'show tables' -s --skip-column-names); do mysqldump db1 $I | gzip > "/home/user/backup/mysql/db1/$I.sql.gz";
for I in $(mysql --database=db2 -e 'show tables' -s --skip-column-names); do mysqldump db1 $I | gzip > "/home/user/backup/mysql/db2/$I.sql.gz";

次のエラーが生成されます。

line 4: syntax error: unexpected end of file

コンソールで実行しても失敗しません

4

1 に答える 1

0

あなたはループdoneの終わりに行方不明です。for言う:

for I in $(mysql --database=db1 -e 'show tables' -s --skip-column-names); do mysqldump db1 $I | gzip > "/home/user/backup/mysql/db1/$I.sql.gz"; done
for I in $(mysql --database=db2 -e 'show tables' -s --skip-column-names); do mysqldump db1 $I | gzip > "/home/user/backup/mysql/db2/$I.sql.gz"; done

編集:あなたのコメントは、まだエラーが発生していることを示しています。あなたのファイルにはCR+LF 行末があるようです。dos2unix行末をに変換するために使用するLFと、問題はなくなります!

于 2013-09-24T13:44:50.017 に答える