Comando com símbolos de porcentagem não sendo executados no crontab

10

O seguinte crontab não funciona:

# TEST LINE DOES DOT RUN
*/1 * * * * /bin/echo 'test ''/bin/date +%Y-%m-%d' >> /tmp/test

Eu também tentei iniciá-lo com:

SHELL=/bin/bash

Atualização: achei que os personagens do backtick 'foram os vilões, mas como a resposta abaixo esclarece a porcentagem% foi o culpado!

    
por lpanebr 13.03.2014 / 19:56

1 resposta

12

Em /bin/date +%Y-%m-%d , você precisa escapar de cada % com \ de acordo com esta página man :

  

O campo "sexto" (o restante da linha) especifica o comando a ser executado. A parte inteira do comando da linha, até uma nova linha ou caractere%, será executada por / bin / sh ou pelo shell especificado na variável SHELL do cronfile. Os sinais de porcentagem (%) no comando, a menos que tenham escapado com barra invertida (), serão alterados em caracteres de nova linha e todos os dados após o primeiro% serão enviados para o comando como entrada padrão.

    
por DK Bose 14.03.2014 / 06:21

Tags