El script bash simple no cronometra correctamente

Sep 29 2020

Estoy intentando cron un script bash simple en mi computadora portátil macbook-pro. En última instancia, primero me gustaría hacer que esto funcione para el script bash y luego pasar a mis scripts de Python. Creé un archivo bash simple (llamado hello.sh) con el siguiente código:

#!/bin/bash

echo "Hello World" >> /Users/myusername/Desktop/test.txt

Y mi crontab -ese designa de la siguiente manera:

* * * * * /bin/bash /Users/myusername/Desktop/bash-files/hello.sh

Sin embargo, no obtengo nada después de esperar un minuto.

Después de buscar en Google, llegué a la conclusión de que tal vez me estaba encontrando con el problema "gotcha" (cron leyendo parámetros diferentes a env). Así que hice cola lo siguiente:

* * * * * env > /tmp/env.output

y su salida es la siguiente

SHELL=/bin/sh
USER=myusername
PATH=/usr/bin:/bin
PWD=/Users/myusername
SHLVL=1
HOME=/Users/myusername
LOGNAME=myusername
_=/usr/bin/env

ejecutar enven mi terminal produce los siguientes parámetros relevantes:

SHELL=/bin/zsh
USER=myusername
PATH=/Users/myusername/opt/anaconda3/bin:/Users/myusername/opt/anaconda3/condabin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/opt/X11/bin
PWD=/tmp
SHLVL=1
HOME=/Users/myusername
LOGNAME=myusername
_=/usr/bin/env

Agregué la configuración de parámetros anterior a mi script hello.sh pero todavía no obtengo nada.

¿Alguien puede señalar cuál es mi problema aquí?

Respuestas

2 bmike Sep 29 2020 at 07:31

Estos son errores de permisos y rutas que se resuelven fácilmente.

Busque en las preferencias del sistema para otorgar acceso completo al disco a sus binarios y desarme PATH en sus scripts para detectar cualquier ruta que no esté completa.

Lo recomiendo /usr/local/binpara facilitar el mantenimiento de los scripts que desee tener launchdo cronprogramar.

Sin embargo, no hay ninguna razón por la que no pueda ejecutar desde su carpeta de usuario si eso le conviene.