El script de Cron no se ejecuta en Mavericks

11

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

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

Pero no se ejecutará. Esperé, como, 10-15 minutos. ¿Por qué?

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

    
pregunta RomaValcer 09.01.2014 - 17:05

5 respuestas

16

El entorno en el que se ejecuta un trabajo cron es bastante diferente de un shell interactivo; es probable que el script se esté ejecutando, pero no con éxito. Una de las mayores diferencias es que para las tareas cron, el PATH predeterminado es simplemente "/ usr / bin: / bin", por lo que si usa cualquier comando que no esté en / usr / bin o / bin, no lo hará. se encuentra a menos que su secuencia de comandos 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 intenta hacer algo interactivo (leer desde el terminal, etc.) eso fallará. Intenta cambiar la entrada cron a:

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

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

    
respondido por el Gordon Davisson 10.01.2014 - 00:12
4

Es difícil decirlo, pero ¿qué sucede si agrega un segundo trabajo cron para ejecutar cada 5 minutos aproximadamente y le pide que llame a alguna herramienta creada por el sistema que registre los mensajes en system.log?

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

De esa manera sabrá que cron se está ejecutando para el usuario en cuestión y puede enfocarse en iniciar cron o arreglar su script para que se ejecute en el entorno de cron limitado. (Puede mirar el reloj de la pared y elegir algunas veces para el próximo o incluso los próximos minutos, p. Ej., Editar a las 12:34 y poner 35,36,37,38 minutos para ejecutar y guardar el archivo cron. .)

    
respondido por el bmike 09.01.2014 - 18:53
4

Ha pasado un tiempo que hiciste esta pregunta, pero parece que no surgió ninguna solución en este hilo.

Dependiendo de la forma en que cree un usuario-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, verifique con:

crontab -l
    
respondido por el Ben 13.01.2015 - 08:10
1

Tuve el mismo problema. Debe agregar la ruta a su script de bash:

#!/bin/sh
PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin
    
respondido por el Ivan Zhirkov 30.08.2015 - 05:24
0

Tuve el mismo problema. Desapareció después de agregar una nueva línea después de mi trabajo en mi archivo crontab (soy un crontab n00b total, por lo que no tengo idea si este comportamiento es ampliamente conocido o no).

    
respondido por el RMD 13.10.2016 - 17:57

Lea otras preguntas en las etiquetas