Forum Linux.général Ajouter tâche cron avec un script

Posté par  .
Étiquettes : aucune
0
20
oct.
2007
Bonjour,

la commande crontab -e permet d'ajouter une tâche cron.
Celle-ci lance l'édition d'un fichier de liste des tâches, avec vi ou nano, selon la configuration de la machine.

Ceci est bien pratique, mais moi, je voudrais ajouter une ligne à l'aide d'un script (et non pas la saisir à la main à travers nano ou vi).

J'ai regardé le fichier /etc/crontab mais il n'est pas tout à fait pareil que celui édité avec crontab -e

Comment faire ?

Merci d'avance pour vos suggestions ;-)
  • # /etc/cron.d ?

    Posté par  . Évalué à 5.

    http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.5

    Si tu ajoutes un fichier dans /etc/cron.d, celui-ci sera automatiquement pris en compte par cron.
  • # Ajouter une ligne à la crontab

    Posté par  (site web personnel) . Évalué à 3.


    #!/bin/sh
    crontab -l > tempcrontab
    echo "* * * * * commande" >> tempcrontab
    crontab tempcrontab


    Ce petit script devrait rajouter une entrée à la crontab.
    • [^] # Re: Ajouter une ligne à la crontab

      Posté par  . Évalué à 2.

      Merci Sylvain, cette solution marche parfaitement !

      Effectivement, premières lignes du manuel de crontab :

      crontab [ -u user ] file
      crontab [ -u user ] { -l | -r | -e }


      Je n'avais retenu que la seconde...
      • [^] # Re: Ajouter une ligne à la crontab

        Posté par  . Évalué à 2.

        Cette solution a l'inconvénient d'être vulnérable à des situations de concurrence (si le fichier crontab est modifié entre ton export et ton réimport), et de risquer de pourrir le crontab utile à d'autres programmes en cas de bug dans ton script.

        Alors que la méthode cron.d permet une gestion bien plus souple et sécurisée.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.