Bonjour,
J'ai besoin depuis un script BASH d'ajouter un le lancement d'une commande depuis CRON. est ce que quelqu'un aurait un astuce?
J'ai fais le test en manuel et je comprends le fonctionnement. Par contre depuis un script je ne voie pas.
Version imprimable
Bonjour,
J'ai besoin depuis un script BASH d'ajouter un le lancement d'une commande depuis CRON. est ce que quelqu'un aurait un astuce?
J'ai fais le test en manuel et je comprends le fonctionnement. Par contre depuis un script je ne voie pas.
est ecrit dans le man ....
faut passer par un fichier de surcharge et hop ca merge avec l existant
attention aux droits et a surcharger le cron du bon user
tu appelles ta commande cron depuis ton script.
mais pourquoi vouloir modifier un fichier crontab depuis un script ?
Code:(crontab -l; echo "59 23 * * * commande arg1 arg2 >/dev/null 2>&1") | crontab -
le passage par un sous-interpréteur (entre parenthèses) n'est pas indispensable : une liste entre accolades fonctionne aussi.
n'aurait-on pas plus vite fait, alors, de créer directement le fichier sous /var/spool/cron/crontabs/ ?Citation:
Envoyé par jlliagre
Bonjour,
@N_BaH: La commande crontab est setuid root, donc il est plus simple de passer par crontab que de créer le fichier dans /var/spool/cron/ sinon, il faudrait être root pour créer le fichier et il faudrait aussi prendre en considération la politique de sécurité de crontab (mask, owner, utilisateur autorisé à utilisé crontab, ...)
Au risque d'écraser les entrées existantes ...
De toute façon, les modifications de la crontab doivent être faites à l'aide de la commande crontab, pas en modifiant directement le fichier.
Code:
1
2
3
4 $ man -s 5 crontab ... Each user can have their own crontab, and though these are files in /var/spool/cron/crontabs, they are not intended to be edited directly. ...
Citation:
Envoyé par jlliagre
:koi:Citation:
Envoyé par disedorgue
vous faites vos installations sans être root ? et je parle bien de créer le fichier, et non d'«ajouter un le lancement d'une commande depuis CRON». :(
Bah oui, pourquoi être root pour installer un soft qui peut aussi avoir besoin d'une crontab ?
De plus, il y a un check du fichier par crontab lors de la création (cohérence des champs,...)
Ce n'est pas le problème, mais pourquoi pas, s'il s'agit par exemple d'une installation d'un logiciel dans la homedir d'un utilisateur.
1: tu postules que le fichier n'existe pas mais ce n'est pas garanti. Michaelkael1 à écrit "ajouter le lancement d'une commande depuis CRON", ce qui laisse penser que la crontab existe déjà.Citation:
et je parle bien de créer le fichier, et non d'«ajouter un le lancement d'une commande depuis CRON». :(
2: un fichier crontab ne doit pas être créé par une script d'installation de logiciel, ce dernier doit passer par la commande crontab. C'est la "best practice", ça évite de perdre les modifications si quelqu'un d'autre est en train de faire la même chose, comme l'a déjà écrit disdorgue, il y a un contrôle de cohérence, un peu comme visudo ou vipw, et aussi c'est portable. Même si elles le font probablement toutes, une implémentation cron n'est pas obligée de stocker ses crontab dans /var/spool/cron/crontabs/<username>.
Ca j'ai bien aimé (récupérer tout le contenu initial pour y rajouter sa propre ligne et renvoyer le tout au crontab pour qu'il l'intègre). Je ne comprends d'ailleurs pas le "-1".
On est malheureusement obligé de passer par crontab car c'est le seul outil qui permette à un "non root" d'écrire où il faut et en plus, en dehors du contrôle multiple auquel je ne crois pas trop (je vois mal un second user écrire dans mon crontab en même temps que moi), ça réarme le daemon crond pour qu'il prenne en compte la modif. Sinon il faut lui envoyer un signal HUP. Bon c'est faisable mais puisque crontab le fait déjà...
Il n'y a pas de "-1", c'est "-l" :
Pas avec les cron usuels, qui vérifient toutes les minutes si le répertoire contenant les fichiers crontab a été modifié et relisent les fichiers mis à jours le cas échéant.Citation:
ça réarme le daemon crond pour qu'il prenne en compte la modif. Sinon il faut lui envoyer un signal HUP.
Ah, je n'avais pas vu ce "-1". Il ne vient sûrement pas de moi (j'ai vérifié que je n'avais pas cliqué par erreur). Bon, je met "+1" pour corriger cette injustice ...