¿Hay un límite de caracteres que podría ser un comando en un crontab?
Tengo un crontab con un comando de 178 caracteres y parece estar truncado en 164 cuando se ejecuta. Puedo distinguir este número del correo electrónico que recibo y de los colores vi que cambian desde ese punto.
Entonces, ¿es una limitación "oficial"? No puedo encontrar ninguna documentación sobre esto.
Respuestas:
Wow, encontré cuál es mi problema y no tenía nada que ver con la longitud de la línea.
Resulta que mi comando tenía un% (signo de porcentaje), que tiene un significado especial en crontab. Se utiliza para ingresar texto a STDIN (consulte ¿Por qué mi crontab no funciona y cómo puedo solucionarlo? ).
Así que tuve que escapar de eso. Mi comando que era:
se convierte
fuente
%
causó un par de horas de consternación!Experimentalmente , hay un truncamiento de 999 caracteres por línea en todas mis máquinas Ubuntu, aunque todavía no he encontrado ninguna documentación explicativa relacionada.
He probado en Ubuntu 10.04, 12.04 y 14.04, y el recuento de caracteres 999 se inicia en el primer carácter que no es un espacio en blanco más allá del horario (en mi ejemplo, el horario es
* * * * *
igual a 1 vez por minuto).Observar:
Primero contamos los caracteres del comando que agregaremos a nuestro crontab, sin la programación :
Agregue ese comando a nuestro crontab, para ejecutar cada minuto: (ADVERTENCIA, esto sobrescribe cualquier entrada de crontab existente para el usuario relevante)
Espere un minuto, verifique que
/tmp/test.log
se haya creado un archivo que contenga todas sus "a":Comience de nuevo, elimine el crontab y el archivo de registro:
Agregue el mismo comando que antes, solo 1 carácter más (en mi caso
B
):/tmp/test.lo
se creó un archivo llamado con sus "a". Esto se debe a que el carácter número 1000 se truncó.Para confirmar, elimine el agregado
B
y, en su lugar, agregue un1
al nombre de archivo, así:/tmp/test1.lo
se crea un archivo llamado con sus "a"./bin/echo
de/usr/bin/echo
y encontrar que se tenga que extraer un 4 caracteres adicionales de su comando.fuente
cron
en mi Ubuntu 14.04 trunca silenciosamente el comando a 999 caracteres. Esto es tan loco que me tomó un tiempo digerirlo. Y este parece ser el único lugar en Internet para documentarlo, con 1 voto a favor.... && stop-power-plant; start-power-plant
y cron simplemente corta silenciosamente; start-power-plant
/bin/sh: 1: Syntax error: Unterminated quoted string
, pero no hay nada que lo garantice.