Comando Crontab não executado

2

Eu tenho um comando no meu crontab que não executa corretamente, isso deve fazer backup do banco de dados todos os dias no horário especificado. Eu tentei executar o comando no meu terminal e está funcionando corretamente.

Para editar meu crontab eu uso crontab -e , a guia cron atual contém o seguinte:

# Save online agent status every 2 minutes
*/2 * * * * /usr/bin/python /home/dummy/scm/qt-savu/userstatus.py >> /home/dummy/qt-savu/userstatus.log

# Save Hourly call counts every XX:59
59 * * * * /usr/bin/python /home/dummy/scm/qt-savu/hourlylog.py >> /home/dummy/qt-savu/hourlycc.log

# Backup albatross everyday
58 5 * * * /usr/bin/mysqldump -udummy -ppassword albatross | /bin/gzip > /home/dummy/Documents/backups/'/bin/date +%y.%m%d'.albatross.tar.gz

# Backup bert everyday
58 5 * * * /usr/bin/mysqldump -udummy -ppassword bert | /bin/gzip > /home/dummy/Documents/backups/'/bin/date +%y.%m%d'.bert.tar.gz

Outros comandos no crontab estão funcionando corretamente, Os comandos que não estão funcionando são:

# Backup albatross everyday
58 5 * * * /usr/bin/mysqldump -udummy -ppassword albatross | /bin/gzip > /home/dummy/Documents/backups/'/bin/date +%y.%m%d'.albatross.tar.gz

# Backup bert everyday
58 5 * * * /usr/bin/mysqldump -udummy -ppassword bert | /bin/gzip > /home/dummy/Documents/backups/'/bin/date +%y.%m%d'.bert.tar.gz

A saída do log se parece com isso

Sep  4 05:56:01 luna CRON[18815]: (dummy) CMD (/usr/bin/mysqldump -udummy -ppassword bert | /bin/gzip > /home/dummy/Documents/backups/'/bin/date '+)
Sep  4 05:56:01 luna CRON[18812]: (CRON) info (No MTA installed, discarding output)
Sep  4 05:56:01 luna CRON[18817]: (dummy) CMD (/usr/bin/mysqldump -udummy -ppassword albatross | /bin/gzip > /home/dummy/Documents/backups/'/bin/date '+)
Sep  4 05:56:01 luna CRON[18813]: (CRON) info (No MTA installed, discarding output)

Como observei, a saída do log pára em /bin/date .

    
por Irvin Denzel Torcuato 04.09.2015 / 00:15

1 resposta

4

% é tratado especialmente pelo cron. É usado para denotar o final da porção de comando e o início da entrada padrão. Como tal, você deve escapar, assim: \% .

Na página do manual crontab:

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 file.

    
por 04.09.2015 / 00:19