“EOF inesperado ao procurar correspondência ''” no trabalho cron

5

Eu configurei uma tarefa do cron no meu servidor que executa o RedHat 4.1 para fazer backup de bancos de dados MySQL e, em seguida, carrego para o Amazon S3. O objetivo é descartar o arquivo .bz2 em uma pasta correspondente ao dia da semana. No entanto, estou recebendo o seguinte erro enviado pelo daemon.

Trabalho Cron:

[email protected]
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

Mensagem de erro:

/bin/sh: -c: line 0: unexpected EOF while looking for matching '''
/bin/sh: -c: line 1: syntax error: unexpected end of file
    
por Jamie - eyespeak 12.09.2012 / 15:27

2 respostas

10

Você precisa escapar do sinal de porcentagem em seu comando com uma barra invertida: \% , caso contrário, ele será interpretado como o fim do comando.

De 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.
    
por 12.09.2012 / 15:36
2

Altere isto:

'date +%A'

para:

'date +\%A'
    
por 12.09.2012 / 15:37