12 votos

Cron script no se ejecuta en Mavericks

He configurado un archivo crontab de usuario de la siguiente manera:

*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh

Pero no se ejecuta. Esperé como 10-15 minutos. ¿Por qué?

El comando auto-update.sh se ejecuta fácilmente si se ejecuta manualmente. Cómo puedo romper la cadena de ejecución y conseguir que mi script se ejecute desde cron?

1 votos

¿Qué sistema operativo está utilizando? Cron está obsoleto en OS X, por lo que es posible que tenga que iniciar el demonio.

0 votos

Lo último, 10.9.2. ¿Cómo lo hago? Sólo quiero que un script funcione cada hora, por ejemplo. En el anterior script me desesperé porque no funcionaba, y lo modifiqué para que funcionara cada 2 min.

1 votos

El demonio cron debería iniciarse automáticamente (por su sustituto, launchd) si existe un archivo crontab. Consulte /System/Library/LaunchDaemons/com.vix.cron.plist (especialmente el archivo KeepAlive y QueueDirectories artículos).

18voto

Nate Puntos 220

El entorno en el que se ejecuta un trabajo cron es bastante diferente al de un shell interactivo; es probable que el scriptse esté ejecutando, pero no con éxito. Una de las mayores diferencias es que para los trabajos de cron, el PATH por defecto es simplemente "/usr/bin:/bin", por lo que si utiliza cualquier comando que no esté en /usr/bin o /bin, no se encontrará a menos que su script establezca su propio PATH, o proporcione rutas explícitas a los comandos. La otra gran diferencia es simplemente que no está conectado a una sesión interactiva, por lo que si trata de hacer algo interactivo (leer de la terminal, etc) que va a fallar. Intente cambiar la entrada de cron a:

*/2 * * * * /Users/[my user]/Dropbox/htdocs/auto-update.sh >>/tmp/auto-update.log 2>&1

...y ver si aparece algo informativo en el registro.

0 votos

Esto es mejor que mi esfuerzo - siéntase libre de incorporar mi idea del registrador si hace que su respuesta sea mejor.

0 votos

El registro simplemente no apareció.

0 votos

@RomaValcer: es extraño, significa que no llega a lanzar el script. Yo ejecutaría ps -ax | grep [c]ron y ver si aparece el demonio cron (/usr/sbin/cron) en ejecución. Si es así, prueba el logger test de bmike. En cualquier caso, comprueba los registros (/var/log/system.log y el elemento "All Messages" en la utilidad Console) y mira si hay algo relevante.

4voto

Oskar Puntos 1242

Es difícil de decir, pero ¿qué tal si agregas un segundo trabajo cron para que se ejecute cada 5 minutos más o menos y que llame a alguna herramienta construida por el sistema que registre los mensajes en system.log?

0,5,10,15,20 * * * * /usr/bin/logger "cron is working"

De esta manera sabrás que cron se está ejecutando para el usuario en cuestión y podrás centrarte en iniciar cron o en arreglar tu script para que se ejecute en el entorno cron limitado. (Puedes mirar el reloj de pared y elegir unas cuantas horas que estén próximas o incluso los próximos minutos - por ejemplo, editando a las 12:34 pon 35,36,37,38 para los minutos a ejecutar y guarda el archivo cron).

4voto

JohnGH Puntos 241

Hace tiempo que hiciste esta pregunta, pero parece que no ha surgido ninguna solución en este hilo.

Dependiendo de la forma de crear un user-crontab, podría ser necesario ejecutar esto después de editarlo:

crontab ~/.yourcrontabfile

Para ver si el nuevo crontab (también después de modificarlo) se ha activado, compruebe con:

crontab -l

0 votos

Eso no funciona. Crontab -l muestra que los crons están configurados, pero sigue sin funcionar.

1voto

nikie Puntos 7479

Yo tuve el mismo problema. Tienes que añadir la ruta a tu bash script:

#!/bin/sh
PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin

0voto

gmazlami Puntos 139

Yo tenía el mismo problema. Desapareció después de añadir una nueva línea después de mi trabajo en mi archivo crontab (soy un novato en crontab, así que no tengo ni idea de si este comportamiento es ampliamente conocido o no).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X