guiones de bash y python de cola cron
Actualmente estoy buscando entender y sentirme cómodo con las colas crontab en mi macbook pro. Recientemente resolví un problema por el cual mi simple script bash no se ejecutaba. Resulta que tuve que mover mi script bash y su salida en la /Users/myusername/ruta. Antes de que lo tuviera 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 de bash y python deben estar alojados en la /Users/myusernameruta siempre? ¿No hay solución?
Respuestas
Pregunta:
Mi pregunta: ¿Todos mis scripts de bash y python deben estar alojados en la
/Users/myusernameruta siempre? ¿No hay solución?
Responder:
No. Puede ubicar sus scripts de bash y python en cualquier lugar que desee. Sin embargo, existen requisitos adicionales :
- Sus
crontrabajos se ejecutan con un ENTORNO diferente al que tenía cuando los ejecuta; ej$PATH. En consecuencia, debe utilizar una especificación de ruta completa para especificar sus scripts en elcrontab; por ejemplo use:
* * * * * /opt/local/bin/python3 /some/dir/you/choose/myscript.py
- En mi Mac (Catalina) he encontrado que es necesario otorgar privilegios de "Acceso total al disco"
cron. YMMV en una versión de SO diferente. Así es cómo:
System Preferences -> Security & Privacy -> Privacy pestaña:
- Al menos mientras depura su
crontrabajo, debería considerar redirigir cualquier mensaje de error (stderr) a un archivo; de lo contrario, terminan en lo/dev/nullque no es útil. Continuando 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 se encuentra 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.
- cron y "comando no encontrado"
- cronjobs no se ejecutan
- Obteniendo un error de comando desconocido al intentar ejecutar un script a través de cron