Utilisation des variables dans crontab

Résolu/Fermé
djimy_cartel Messages postés 14 Date d'inscription lundi 13 octobre 2014 Statut Membre Dernière intervention 28 octobre 2014 - Modifié par djimy_cartel le 13/10/2014 à 12:28
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 - 14 oct. 2014 à 09:46
Bonjour à tous;

Je suis sous ubuntu 12.04 , actuellement, j'utilise crontab et d'après mes recherches, j'ai trouvé qu'il est possible de faire ce genre de chose dans le fichier crontab comme par exemple:

MYPATH=/root/scripts
MYSCRIPT=mon_script.php

0 1 * * * $MYPATH/$MYSCRIPT



Est-il possible d'ajouter des variables à mon fichier crontab comme ceci?

mm=55
hh=22
jj=30

mm hh jj * * root php /var/www/html/mon_script.php
Merci pour votre aide.

3 réponses

mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 811
Modifié par mamiemando le 13/10/2014 à 13:19
Je ne pense pas car cron s'attend à lire des variables entières dans ces colonnes.
http://unixhelp.ed.ac.uk/CGI/man-cgi?crontab+5

Ceci dit tu peux toujours essayer de mettre $mm $hh $jj dans les colonnes vu que le fichier semble suivre une syntaxe shell. Mais à mon avis ça ne marchera pas car les déclarations de tes variables n'auront pas un format de ligne crontab.

À quelles fins as-tu besoin de faire ça ? Il y a sans doute moyen d'aborder le problème autrement ?

Bonne chance
0
djimy_cartel Messages postés 14 Date d'inscription lundi 13 octobre 2014 Statut Membre Dernière intervention 28 octobre 2014
13 oct. 2014 à 13:57
Merci beaucoup mamiemando.
C'est vrai , ça ne marche pas même en mettant $mm $hh $jj.
L'intérêt de faire ça à mon avis est de fixer le moment d'exécution de plusieurs scripts dans un fichier crontab au lieu de le réécrire à chaque fois.
0
CptRomaiin Messages postés 315 Date d'inscription mercredi 23 octobre 2013 Statut Membre Dernière intervention 28 avril 2016 58
13 oct. 2014 à 14:15
Salut,

Dans ce cas pourquoi tu ne lances pas un seul script dans le crontab qui lui même lancera tout tes scripts en même temps ? Comme ça tu ne modifies qu'une ligne si tu veux changer la date et l'heure d'exécution.
0
djimy_cartel Messages postés 14 Date d'inscription lundi 13 octobre 2014 Statut Membre Dernière intervention 28 octobre 2014
13 oct. 2014 à 14:21
Bonne idée CptRomaiin! , je te remercie.
0
mamiemando Messages postés 33446 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 20 décembre 2024 7 811
14 oct. 2014 à 09:46
Je valide l'approche de CptRomain :
https://forums.commentcamarche.net/forum/affich-30905970-utilisation-des-variables-dans-crontab#3

De plus cela n'a pas d'impact sur l'organisation de tes scripts. Mettons que tu veuilles lancer les scripts S1, S2, S3 aux mêmes instants, il suffit de créer un script S qui sera invoqué par crontab et qui invoquera en cascade S1, S2 et S3.

Note que tu peux regarder aussi anacron pour compléter ta solution (ou fcron) :
http://doc.ubuntu-fr.org/anacron
http://doc.ubuntu-fr.org/fcron

Bonne chance
0