• Créer des tâches planifiées avec CRON

    CRON est un démon qui va permettre d’exécuter sur des systèmes UNIX des tâches planifiées de manière récurrente ( ex : toutes les heures, tous les jours à 12h00...).

    Tutoriel réalisé sur Xubuntu 14.04.1

    Cron étant un démon, vous pouvez l'arrêter, le démarrer, le redémarrer avec la commande : 

    sudo service cron stop | start | restart

     

    Créer des tâches planifiées avec CRON

    (cliquer sur l'image pour l'agrandir)

     

    Ici, vous pouvez voir que le démon est bien démarré...

     

    Créer des tâches planifiées avec CRON

      (cliquer sur l'image pour l'agrandir)

     

    La liste des tâches à effectuer par cron est inscrite dans une table de configuration, table de configuration qui est éditée / vérifiée (syntaxe) par la commande crontab.

    Manuel crontab

    Vous avez la possibilité définir les droits d'utilisation sur crontab.

    Les fichiers cron.allow et cron.deny situés dans /etc permettent de définir ces droits..

    Si le fichier /etc/cron.allow existe, alors les utilisateurs doivent êtres présents dans ce fichier pour être autorisés à utiliser cette commande. 

    Si le fichier /etc/cron.allow n'existe pas mais que /etc/cron.deny existe, alors les utilisateurs ne doivent pas êtres présents dans le fichier /etc/cron.deny afin de pouvoir utiliser cette commande.

    Si aucun des fichiers n'existent :

    - La valeur par défaut sur Ubuntu/Debian est que tout le monde peut utiliser crontab.

    - Sur d'autres systèmes Linux, seul le super-utilisateur sera autorisé à utiliser cette commande.

    Pour ajouter un utilisateur dans un de ces 2 fichiers, utilisez les commandes :

    echo "utilisateur_autorisé" >> /etc/cron.allow

    echo "utilisateur_interdit" >> /etc/cron.deny

    Il existe une table de configuration par utilisateur.

    Selon votre OS, la table de configuration sera située :

    Debian GNU/Linux et Ubuntu :  /var/spool/cron/crontabs/utilisateur

    CentOS/Red Hat/RHEL/Fedora/ArchLinux : /var/spool/cron/utilisateur

    Mac OS X : /usr/lib/cron/tabs/utilisateur

      

    Créer des tâches planifiées avec CRON

     (cliquer sur l'image pour l'agrandir) 

     

    La syntaxe de crontab est :

    crontab -options

    crontab -l : affiche le fichier crontab de l'utilisateur actuellement connecté.

    crontab -e : édite le fichier crontab de l'utilisateur actuellement connecté.

    crontab -u utilisateur -l : affiche le fichier crontab d'un utilisateur.

    crontab -u utilisateur -e : édite le fichier crontab d'un utilisateur.

    crontab -r : supprime toutes les tâches contenues dans le fichier crontab de l'utilisateur actuellement connecté.

    !! Aucune confirmation ne sera demandée pour supprimer les tâches...

    PS : Lors de la 1ère édition de crontab, il vous sera demandé de choisir l'éditeur que vous souhaitez utiliser.

    Ce choix sera mémorisé pour les prochaines éditions, mais vous pouvez très bien le modifier par la suite avec la commande :

    select-editor

     

    Créer des tâches planifiées avec CRON

      (cliquer sur l'image pour l'agrandir) 

     

    Après une édition, un message de confirmation s'affichera si la syntaxe des lignes entrées est conforme.

     

    Créer des tâches planifiées avec CRON

     (cliquer sur l'image pour l'agrandir)  

     

    La syntaxe d'une ligne dans le fichier crontab se décompose de cette manière :

    PS : beaucoup vont définir le dimanche avec la valeur 0 alors que le manuel du crontab précise bien que le dimanche a pour valeur 0 et 7.

     

    Créer des tâches planifiées avec CRON

      (cliquer sur l'image pour l'agrandir) 

     

    Ici, dans mon crontab, je demande à ce que ma corbeille soit vidée toutes les heures.

     

    Créer des tâches planifiées avec CRON

      (cliquer sur l'image pour l'agrandir) 

     

    Vous avez également la possibilité d'utiliser des valeurs prédéfinies pour planifier vos tâches. 

     

    Créer des tâches planifiées avec CRON

      (cliquer sur l'image pour l'agrandir) 

     

    ici, j'effectue une mise à jour des définitions antivirus Bitdefender une fois par heure....

     

    Créer des tâches planifiées avec CRON

      (cliquer sur l'image pour l'agrandir) 

     

    Si vous avez un serveur de mails ou bien un mail transfert agent, vous pouvez activer l'envoi de mail (MAILTO) afin que cron puisse envoyer les résultats des tâches programmées..

    PS : pour désactiver les notifications, il suffira de mettre MAILTO=""

    Dans ma 1ère tâche planifiée, je demande à rediriger le résultat de la tâche vers un fichier de log ( 2>&1 redirigeant la sortie d'erreur vers la sortie standard).

    Pour en savoir un peu plus sur les redirections : les flux de redirection

    Dans la seconde tâche, je demande a cron de récupérer toutes les heures la liste des mises à jour disponibles et de m'envoyer celle-ci par mail.

     

    Créer des tâches planifiées avec CRON

     (cliquer sur l'image pour l'agrandir) 

     

    ici, le résultat de ma seconde tâche planifiée...

     

    Créer des tâches planifiées avec CRON

      (cliquer sur l'image pour l'agrandir) 

     

    Vous pouvez consulter les logs de cron dans le fichier syslog.

     

    Créer des tâches planifiées avec CRON

       (cliquer sur l'image pour l'agrandir) 

     

    Pour finir, voici quelques exemples de tâches planifiées :

    Toutes les 15 minutes

    */15 * * * * /usr/bin/apt-get update

    Tous les jours à 21H45

    45 21 * * * /usr/bin/apt-get update

    Tous les mardi à 23h35

    35 23 * * 2 /usr/bin/apt-get update

    A 10h45 tous les 15 du mois

    45 10 15 * * /usr/bin/apt-get update

    Tous les jours à 12h et 18h

    00 12,18 * * * /usr/bin/apt-get update

    Entre 15h et 20h du lundi au mercredi

    00 15-20 * * 1-3 /usr/bin/apt-get update

    Toutes les 15mn de 15h à 18h et du lundi au vendredi 

    */15 15-18 * * 1-5 /usr/bin/apt-get update

    Tous les jours pairs à 18h30

    30 18 */2 * * /usr/bin/apt-get update

    A 16h45 les lundi, mercredi et vendredi

    45 16  * * 1,3,5 /usr/bin/apt-get update

    Tous les jours à minuit

    @daily /usr/bin/apt-get update

     

    Conclusion

    Cron se révèle être l'outil incontournable pour exécuter des tâches planifiées... 

    Si au contraire, vous souhaitez planifier des tâches ponctuelles, vous pouvez passer par la commande at

    N'hésitez pas à me faire part de vos remarques concernant ce tutoriel....   

    « Chiffrement / déchiffrement asymétrique avec GnuPGConfiguration simple d'un MTA avec sSMTP »

    Tags Tags : , , , , , ,
  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :