Actualmente estoy buscando entender y sentirme cómodo con las colas crontab en mi macbook pro. Recientemente resolví un problema en el que mi simple script bash no se ejecutaba. Resulta que tuve que mover mi script bash y su salida en la /Users/myusername/
ruta. Antes lo tenía en el /Users/myusername/Desktop/
. Esta publicación se puede encontrar aquí: https://stackoverflow.com/questions/64110897/simple-bash-script-doesnt-cron-properly?noredirect=1#comment113370465_64110897
Mi pregunta: ¿Todos mis scripts bash y python deben estar alojados en /Users/myusername
la ruta siempre? ¿No hay solución?
Mi pregunta: ¿Todos mis scripts bash y python deben estar alojados en
/Users/myusername
la ruta siempre? ¿No hay solución?
No. Puede ubicar sus scripts bash y python en cualquier lugar que desee. Sin embargo, hay requisitos adicionales :
cron
trabajos se ejecutan con un ENTORNO diferente al que tienes cuando los ejecutas; ej $PATH
. En consecuencia, debe usar una especificación de ruta completa para especificar sus scripts en el crontab
; por ejemplo uso:* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py
cron
. YMMV en una versión de sistema operativo diferente. Así es cómo:System Preferences
-> Security & Privacy
-> Privacy
pestaña:
cron
trabajo, debe considerar redirigir cualquier mensaje de error ( stderr
) a un archivo; de lo contrario, terminarán en /dev/null
lo que no es útil. Siguiendo con el ejemplo anterior:* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py >> /Home/<username>/MyCronLog.txt 2>&1
Es posible que solo deba asegurarse de otorgar permisos a los elementos y usar rutas completas para todo. El hecho de que un script se ejecute cuando está en un shell interactivo no significa que sea correcto en un shell limitado.
Aquí hay súper consejos de depuración sobre una pregunta reciente.