Existe um limite de caracteres que um comando em um crontab possa ter?
Eu tenho um crontab com um comando de 178 caracteres e parece estar truncado em 164 quando executado. Posso distinguir esse número do e-mail que recebo e das cores do vi alteradas a partir desse ponto.
Então, é uma limitação "oficial"? Não consigo encontrar nenhuma documentação sobre isso.
Respostas:
Uau, eu descobri qual é o meu problema e não tinha nada a ver com o comprimento da linha.
Acontece que meu comando tinha um% (sinal de porcentagem) nele, que tem um significado especial no crontab. Ele é usado para inserir texto no STDIN (consulte Por que meu crontab não está funcionando e como posso solucioná-lo? ).
Então eu tive que escapar disso. Meu comando que era:
torna-se
fonte
%
causou consternação em algumas horas!Experimentalmente , há um truncamento de 999 caracteres por linha em todas as minhas máquinas Ubuntu, embora ainda não tenha encontrado nenhuma documentação explicativa relacionada.
Testei no Ubuntu 10.04, 12.04 e 14.04, e a contagem de 999 caracteres é iniciada no primeiro caractere que não seja um espaço em branco após o cronograma (no meu exemplo, o cronograma é
* * * * *
igual a 1 vez a cada minuto).Observar:
Primeiro, contamos os caracteres do comando que adicionaremos ao nosso crontab - sem a programação :
Adicione esse comando ao nosso crontab, para executar a cada minuto: (WARN isso substitui todas as entradas existentes do crontab para o usuário relevante)
Espere um minuto, verifique se um
/tmp/test.log
arquivo foi criado contendo todos os seus "a" s:Comece do zero, remova o crontab e o arquivo de log:
Adicione o mesmo comando de antes, apenas 1 caractere a mais (no meu caso
B
):/tmp/test.lo
foi criado com o seu "a" s. Isso ocorre porque o 1000º caractere foi truncado.Para confirmar, remova o adicionado
B
e adicione um1
ao nome do arquivo, da seguinte maneira:/tmp/test1.lo
é criado com o seu "a" s./bin/echo
para/usr/bin/echo
e descubra que você precisará remover 4 caracteres adicionais do seu comando.fonte
cron
no meu Ubuntu 14.04, silenciosamente, trunca o comando para 999 caracteres. Isso é tão louco que demorei um pouco para digeri-lo. E este parece ser o único lugar na Internet para documentá-lo, com 1 votação positiva.... && stop-power-plant; start-power-plant
e cron apenas silenciosamente corta; start-power-plant
/bin/sh: 1: Syntax error: Unterminated quoted string
, mas não há nada que garanta isso.