Actions

 Langue:
 Flux RSS:


La commande crontab


 Besoin d'aide?

Si vous souhaitez de l'aide pour générer votre ligne de crontab, vous pouvez utiliser mon . C'est totalement gratuit.

Présentation

  • La Crontab permet de réaliser automatiquement des tâches récurrentes.
    Crontab est le nom du programme qui permet d'éditer la table de configuration du programme cron. La commande crontab édite en fait un fichier relatif à l'utilisateur qui l'exécute, et en vérifie la syntaxe. Ce fichier se situe souvent dans l'arborecence /var:
    • /var/spool/cron/tabs/utilisateur (SuSE GNU/Linux)
    • /var/spool/cron/crontabs/utilisateur (Debian GNU/Linux et Ubuntu)
    • /var/cron/tabs/utilisateur (FreeBSD et OpenBSD)

    Le fichier cron de l'utilisateur root sur une machine Ubuntu se trouvera donc dans:

    • /var/spool/cron/crontabs/root

    Certains systèmes disposent également d'une crontab centralisée dans /etc/crontab.

 

Syntaxe

  • Afin d'éditer la table cron, il suffit d'exécuter la commande suivante:
    crontab -e
    Qui lancera l'éditeur par défaut (souvent vi) présentant la table actuelle (ou un fichier vide s'il s'agit du premier lancement de crontab).
    Chaque ligne du fichier correspond à une tâche à exécuter, renseignée de la manière suivante:
    mm hh jj MMM JJJ tâche > log

    Où:

    • mm représente les minutes (de 0 à 59)
    • hh représente l'heure (de 0 à 23)
    • jj représente le numéro du jour du mois (de 1 à 31)
    • MMM représente le numéro du mois (de 1 à 12) ou l'abréviation du nom du mois (jan, feb, mar, apr, ...)
    • JJJ représente l'abréviation du nom du jour ou le chiffre correspondant au jour de la semaine (0 représente le dimanche, 1 représente le lundi, ...)
    • tâche représente la commande ou le script shell à exécuter
    • log représente le nom d'un fichier dans lequel stocker le journal des opérations. Si la clause > log n'est pas spécifiée, cron enverra automatiquement un mail de confirmation. Pour éviter cela il suffit de spécifier > /dev/null
    • Note:

    Pour chaque unité de temps (minute/heure/...) les notations sont possibles:

    • * : à chaque unité de temps
    • 2-5 : les unités de temps (2,3,4,5)
    • */3 : toutes les 3 unités de temps (0,3,6,...)
    • 5,8 : les unités de temps 5 et 8

     

    Exemples

    • Imaginons que l'on souhaite mettre en place un journal automatisé (dans le fichier /logs/log_df.log par exemple) de l'espace disque libre (commande df) à des intervalles de temps précis:
      • Tous les jours à 23h30:
        30 23 * * * df >> /logs/log_df.log
      • Toutes les heures, passées de 5 minutes :
        5 * * * * df >> /logs/log_df.log
      • Tous les premiers du mois à 23h30:
        30 23 1 * * df >> /logs/log_df.log
      • Tous les lundis à 22h28:
        28 22 * * 1 df >> /logs/log_df.log
      • Du 2 au 5 de chaque mois à 10h12:
        12 10 2-5 * * df >> /logs/log_df.log
      • Tous les jours pairs du mois à 23h59:
        59 23 */2 * * df >> /logs/log_df.log
      • Toutes les 5 minutes:
        */5 * * * * df >> /logs/log_df.log

        Il est également possible d'exécuter automatiquement des commandes plus complexes à l'aide d'un script shell. Il suffit pour cela de le déclarer en tant que tâche dans la table cron.

       

Tutoriel vidéo sur l'utilisation de la Contrab

 

 

Retour