运行cron sh时出错

时间:2013-09-24 13:34:16

标签: linux cron sh

我有这个文件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

当我在控制台中运行它时不会失败

1 个答案:

答案 0 :(得分: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

编辑:您的comment表示您仍然收到错误消息。您的文件似乎有CR+LF line endings。使用dos2unix将行结尾转换为LF,问题就会消失!