Su mensaje de error cron
se envía a la cuenta mail
del usuario que está ejecutando el trabajo cron
.
Escriba mail
en la línea de comando para ver los mensajes. Para obtener una lista de los comandos mail
, consulte man man .
Debería recibir un mensaje de error con un mensaje de error en el sentido de:
/bin/sh: -c: line 0: unexpected EOF while looking for matching '"'
/bin/sh: -c: line 1: syntax error: unexpected end of file
En cuanto a su comando y por qué no funciona, es porque el signo "%" es un carácter de "nueva línea", lo que significa que le dice al shell que "vaya a la siguiente línea". Entonces, después de que encuentra el primer "%" va a la siguiente línea y nunca ve el resto del comando. Esto se confirma con el "EOF inesperado mientras se busca el '' '(comillas dobles).
La página de manual local de crontab ( man crontab
) es bastante escasa con los detalles y estoy especulando porque se ha desaprobado cron
para launchd
1 . Sin embargo, la página de manual de crontab de developer.apple.com lo explica
El campo "sexto" (el resto de la línea) especifica el comando a ser
correr. La parte completa del comando de la línea, hasta una nueva línea o el carácter%, se ejecutará mediante / bin / sh o mediante el shell especificado en la variable SHELL del archivo cron. Los signos de porcentaje (%) en el comando, a menos que se escapen con barra invertida (\), se cambiarán a caracteres de nueva línea, y todos los datos después del primer% se enviarán al comando como entrada estándar. El comando puede ser prefijado opcionalmente por " @AppleNotOnBattery
" para decirle a cron que no ejecute el comando cuando funciona con la energía de la batería. Por ejemplo, el campo "sexto" al usar esta opción aparecerá algo como "@AppleNotOnBattery /usr/bin/touch /tmp/foo"
Tu solución:
Entonces, lo que debe hacer es "escapar" del carácter "%" con una barra invertida (\) para que le indique que lo interprete literalmente.
Tu comando debe ser:
0/5 * * * * /bin/date "+\%Y-\%m-\%d \%H:\%M:\%S" >> /tmp/log.txt
1 De man crontab
: (Nota de Darwin: Aunque cron (8) y crontab (5) son compatibles con Darwin, su funcionalidad ha sido absorbida por launchd (8). que proporciona una manera más flexible de ejecutar comandos automáticamente. Consulte launchctl (1) para obtener más información.)