2013-09-24 4 views
-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 

, когда я запустить его в консоли не подведет

+0

Пожалуйста, разместите свою линию cronjob. Вы проверили, используете ли вы полные пути? – fedorqui

+0

да, та же ошибка – Javier

ответ

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 

EDIT: Ваш comment означает, что вы по-прежнему получаете сообщение об ошибке. Кажется, что ваш файл имеет CR+LFline endings. Используйте dos2unix, чтобы преобразовать окончания строки в LF, и проблема исчезнет!

+0

строка 4: синтаксическая ошибка: неожиданный конец файла – Javier

+0

@Javier См. Вышеизложенное. – devnull

+0

ОК, это прекрасно! – Javier

Смежные вопросы