Variables dans crontab?
Comment puis-je stocker des variables dans mon crontab? Je me rends compte qu'il n'est pas de shell, mais dire que je veux avoir certaines constantes comme un chemin d'accès à mon application ou quelque chose?
Pensées?
Vous devez vous connecter pour publier un commentaire.
Dans Vixie cron, qui est probablement le plus commun, vous pouvez le faire presque exactement comme un script shell.
La page de man dit:
Vous pouvez dire si vous avez Vixie cron en cochant la page de man pour
crontab
; l'auteur est Paul Vixie. Différents crons peuvent ou peuvent ne pas supporter cette (BusyBox du cron par exemple, ne fonctionne pas), dans ce cas, votre meilleure option est d'envelopper votre commande dans un shell script et exécutez le script à partir de cron à la place. En fait, c'est une bonne chose à faire pour rien de compliqué.cat /proc/version
(pas delsb_release
) et c'est ce que j'obtiens:Linux version 2.6.33.2 (root@NasX86-14) (gcc version 4.2.1) #1 Fri Jul 26 11:32:35 CST 2013
. Espérons que cela aide les autres à économiser du temps.man 5 crontab
. Chaque cron je peux trouver la prend en charge.man
de la distrib (et je sais que la plupart des autres à faire cela) et, puzzingly,which cron
ne montre rien.crontab -h
montre ceci:BusyBox v1.01 (2013.06.23-18:42+0000) multi-call binary
- quoi que cela signifie./usr/sbin
ou quelque chose et n'est généralement pas dans votre CHEMIN d'accès. Merci, c'est très utile.man
installés à toutes. Et je ne pense pas qu'ils sont même à l'aide de crond (mais je n'ai pas vraiment vérifié que l'on pas encore)FOO=${HOME}/foo
ne fonctionne pas comme vous le souhaitez (il laisse"${HOME}"
verbatim / non interpolé).Vous pouvez mettre des variables d'environnement dans le crontab. Voir la page de man pour
crontab(5)
pour plus de détails.Garder mon crontab propre, je voudrais simplement appeler un script shell et faire les choses amusantes dans le script.
Je ne suis pas beaucoup d'un unix gars, donc je ne peux pas dire anytihng de précis, mais cela semble être un bon endroit pour un pré-processeur étape.
en cours d'exécution que par le biais de mon compilateur c++ du préprocesseur donne comme:
Qui semble être juste ce que vous vouliez.
crontab -e
dans un processus en trois étapes de l'édition de votre crontab, en invoquant le rpc, et d'installer la nouvelle crontab avec crontab $filenamecrontab -e
ne pas faire ce qu'il veut, il n'est donc pas vraiment une réponse.