Nous devons avoir / usr / local / bin dans le chemin de cron pour tous les utilisateurs. Existe-t-il un moyen de le définir à l'échelle du système, sans avoir besoin de modifier la crontab de chaque utilisateur individuel?
Nous avons essayé d'ajouter PATH à / etc / crontab:
# grep PATH /etc/crontab
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
Mais lorsque les utilisateurs ont ceci dans leur crontab:
$ crontab -l | grep PATH
* * * * * echo $PATH > /tmp/current_cron_path
... cela révèle que leur chemin est toujours défini par défaut:
$ cat /tmp/current_cron_path
/usr/bin:/bin
echo
votre cron n'est peut-être pas fiable .Réponses:
Vous pouvez configurer votre PATH dans le fichier de configuration crontab comme indiqué dans le premier code, sauf là . Spécifiez d'abord les variables env, puis spécifiez les travaux.
UPD: En raison du fait que le lien est rompu, voici un extrait:
la source
sudo crontab -e
)La définition de la variable PATH devrait fonctionner dans Ubuntu, comment dites-vous que cela ne fonctionne pas?
Voir # 14: Linux Crontab: 15 exemples impressionnants de tâches Cron
la source
Je n'ai pas non plus pu trouver de solution à cela. Le plus proche d'une solution décente est le suivant (extrait de https://raymii.org/s/tutorials/Better_cron_env_and_shell_control_with_the_SHELL_variale.html ).
SHELL=/path/to/setup/cron.bash
Par exemple:
Inconvénient: cela vous oblige à spécifier
SHELL=...
le haut de chaque cronjob. À l'envers: vous utiliserez des variables d'environnement régulières, et vous n'aurez pas à vous soucier de garder les variables cohérentes entre cron et les autresla source
Si vous êtes capable d'être root, pouvez-vous essayer d'éditer
/etc/init.d/cron
et de changer le CHEMIN là-bas? Je n'ai pas testé cela, mais il serait intéressant de vérifier.la source