web-dev-qa-db-fra.com

Variables dans crontab?

Comment puis-je stocker des variables dans ma crontab? Je me rends compte que ce n'est pas Shell, mais je veux des constantes comme un chemin d'accès à mon application

Pensées?

46
JP Silvashy

Dans Vixie cron, qui est probablement le plus courant, vous pouvez le faire presque exactement comme un script Shell.

VARIABLE=value
PATH=/bin:/path/to/doathing
0 0 * * * doathing.sh $VARIABLE

La page de manuel dit: 

Une ligne active dans une crontab sera soit un paramètre d’environnement, soit une commande cron. Un paramètre d'environnement est de la forme,

     name = value

où les espaces autour du signe égal (=) sont facultatifs, et tous les espaces non significatifs subséquents feront partie de la valeur attribuée nommer. La chaîne de valeur peut être placée entre guillemets (simples ou doubles, mais identiques) pour conserver les espaces de début et de fin. Le nom chaîne peut également être placée entre guillemets (simples ou doubles, mais identiques) pour conserver les espaces de début, de fin ou interne.

Vous pouvez savoir si vous avez Vixie Cron en consultant la page de manuel pour crontab; l'auteur sera Paul Vixie. Différents crons peuvent ou non prendre en charge cette opération (le cron de BusyBox, par exemple, ne le fait pas). Dans ce cas, votre meilleure option consiste à envelopper votre commande dans un script Shell et à l'exécuter à partir de cron. En fait, c'est une bonne chose à faire pour tout ce qui est compliqué.

77
mkb

Vous pouvez mettre des variables d'environnement dans la crontab. Voir la page de manuel pour crontab(5) pour plus de détails.

2
Richard Fearn

Pour garder ma crontab propre, je voudrais simplement appeler un script Shell et faire les choses amusantes qu'il contient.

0
Justaman