Necesitamos tener / usr / local / bin en la ruta de cron para todos los usuarios. ¿Hay alguna manera de configurarlo en todo el sistema, sin necesidad de editar el crontab de cada usuario individual?
Intentamos agregar PATH a / etc / crontab:
# grep PATH /etc/crontab
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Pero cuando los usuarios tienen esto en su crontab:
$ crontab -l | grep PATH
* * * * * echo $PATH > /tmp/current_cron_path
... revela que su ruta todavía está configurada por defecto:
$ cat /tmp/current_cron_path
/usr/bin:/bin
echo
en su cron posiblemente no sea confiable .Respuestas:
Puede configurar su RUTA en el archivo de configuración crontab como se muestra en el primer código, excepto allí . Primero especifique las variables env, luego especifique los trabajos.
UPD: Debido al hecho de que el enlace está roto, aquí hay un extracto:
fuente
sudo crontab -e
)Establecer la variable PATH debería funcionar en Ubuntu, ¿cómo se dice que no funciona?
Consulte # 14: Crontab de Linux: 15 ejemplos de trabajos Cron impresionantes
fuente
Tampoco pude encontrar una solución para esto. Lo más cerca que llegué a una solución decente es lo siguiente (tomado de https://raymii.org/s/tutorials/Better_cron_env_and_shell_control_with_the_SHELL_variale.html ).
SHELL=/path/to/setup/cron.bash
Por ejemplo:
Desventaja: esto requiere que especifique el
SHELL=...
en la parte superior de cada cronjob. Al revés: usará variables de entorno regulares y no tendrá que preocuparse por mantener variables consistentes entre cron y otrosfuente
Si puede ser root, ¿puede intentar editar
/etc/init.d/cron
y cambiar la RUTA allí? No he probado esto, pero sería interesante verificarlo.fuente