secuencias de comandos bash y python en cola cron

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/myusernamela ruta siempre? ¿No hay solución?

Respuestas (2)

Pregunta:

Mi pregunta: ¿Todos mis scripts bash y python deben estar alojados en /Users/myusernamela ruta siempre? ¿No hay solución?

Respuesta:

No. Puede ubicar sus scripts bash y python en cualquier lugar que desee. Sin embargo, hay requisitos adicionales :

  1. Tus crontrabajos 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
  1. En mi Mac (Catalina), me pareció necesario otorgar privilegios de "Acceso total al disco" a cron. YMMV en una versión de sistema operativo diferente. Así es cómo:

System Preferences -> Security & Privacy -> Privacy pestaña:

ingrese la descripción de la imagen aquí

  1. Al menos mientras depura su crontrabajo, debe considerar redirigir cualquier mensaje de error ( stderr) a un archivo; de lo contrario, terminarán en /dev/nulllo 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.