"Неожиданный EOF при поиске соответствия``" на задании cron
Я установил задание cron на своем сервере под управлением RedHat 4.1 для резервного копирования баз данных MySQL, а затем загрузил его в Amazon S3. Цель состоит в том, чтобы поместить файл.bz2 в папку, соответствующую дню недели. Однако я получаю следующую ошибку, отправленную мне демоном.
Cron работа:
MAILTO=backups@example.com
0 4 * * * mysqldump --all-databases -ubackups -pPassword | gzip > all-databases.sql.bz2; s3cmd put all-databases.sql.bz2 s3://backup_exampleserver.com/mysql_backups/`date +%A`/all-databases.sql.bz2
Сообщение об ошибке:
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
2 ответа
Решение
Вы должны экранировать знак процента в вашей команде с обратной косой чертой: \%
иначе это интерпретируется как конец команды.
Из crontab(5):
The command field (the rest of the line) is the command to be run. The
entire command portion of the line, up to a newline or % character, will
be executed by /bin/sh or by the shell specified in the SHELL variable of
the crontab. Percent signs (‘%’) in the command, unless escaped with a
backslash (‘\’), will be changed into newline characters, and all data
after the first ‘%’ will be sent to the command as standard input.