2015-10-12 6 views
1

Я бегу это через хрон:cronjob резервного копирования MySQL вопрос

30 2,8,14,20 * * * DATE=`date +%Y-%m-%d_%H:%M`; mysqldump -u mysql_user -ppassword mysql_database | gzip > /home/username/backups/mysql_backup-$DATE.sql.gz 

Когда я делаю это из командной строки, она работает. Но cronjob дает мне такую ​​ошибку:

/bin/bash: -c: line 0: unexpected EOF while looking for matching ``' 
/bin/bash: -c: line 1: syntax error: unexpected end of file 

Что я делаю неправильно?

+0

Просто угадать здесь: 'date +% Y-% m-% d_% H:% M' Не следует использовать одинарные кавычки вместо обратных точек? –

+0

Hmm, nope :(Я пробовал одинарные кавычки, и это давало мне '/ bin/bash: -c: line 0: неожиданный EOF, ища совпадающую' '' 'почти ту же ошибку, кроме одиночных кавычек. – user1227914

+0

попробуйте это:' mysqldump -u mysql_user -ppassword mysql_database | gzip>/home/username/backups/mysql_backup- \ 'date +% Y-% m-% d_% H:% M \' .sql.gz' –

ответ

0

Возможно, вам необходимо избежать % по \. Это будет:

30 2,8,14,20 * * * /bin/bash -c 'DATE=$(date +\%Y-\%m-\%d_\%H:\%M); echo $DATE' 
Смежные вопросы