O cron do Ubuntu 12.04 não está executando

2

Aqui está o problema que estou tendo ...

Eu tenho um servidor que vê um pouco de tráfego. Eu quero manter um backup em tempo real dele em outro servidor. Esse servidor de backup processará arquivos de log, arquivos de rastreamento de visitante, backups de banco de dados, etc. Por isso, tenho vários comandos sendo executados em horários diferentes através do cron no servidor de backup (crontab -e). Por alguma razão eu estava recebendo apenas mensagens para algumas das execuções, então adicionei logging hoje.

Eu não acho que nenhum dos comandos sob o cron do usuário esteja sendo executado. (E eles não fizeram parte do cron do root - sudo crontab -e.) Abaixo está um exemplo de um comando que roda bem na CLI, mas não no cron. O diretório / media / eagle805 é um diretório no servidor de backup em que o servidor principal (eagle805) está montado. O diretório é de propriedade do usuário que possui o cron.

*/1 * * * * mv /media/eagle805/ver1/php/VisitorTracking/data/raw/*.raw /var/www/ver1/php/VisitorTracking/data/raw/. >> /var/www/backups/visitor_tracking_file_move_$(date +%Y-%m-%d).log 2>&1

Quando executo este comando da CLI, tudo funciona bem. O arquivo de log é criado (e vazio). Todos os arquivos que eu quero movidos do primário para o servidor de backup são movidos. Mas não funciona do cron. Estou recebendo este erro (via email):

  

/ bin / sh: 1: Erro de sintaxe: fim do arquivo inesperado (esperando ")")

Alguém pode me dizer o que eu estou sentindo falta?

Obrigado

    
por Gabe Spradlin 28.08.2013 / 19:48

1 resposta

3

Você deve escapar dos sinais de porcentagem com uma barra invertida:

*/1 * * * * mv /media/eagle805/ver1/php/VisitorTracking/data/raw/*.raw /var/www/ver1/php/VisitorTracking/data/raw/. >> /var/www/backups/visitor_tracking_file_move_$(date +\%Y-\%m-\%d).log 2>&1

Referência: man 5 crontab lê perto do meio:

  

Porcentagem de sinais (%) no comando,   a não ser que escape com barra invertida (\), será alterado para nova linha   caracteres, e todos os dados após o primeiro% serão enviados para o comando   como entrada padrão.

    
por loxo 28.08.2013 / 21:12