Blog ENI : Toute la veille numérique !
💥 Un livre PAPIER acheté
= La version EN LIGNE offerte pendant 1 an !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Installation et configuration d'un serveur internet
  3. Planification de tâches
Extrait - Installation et configuration d'un serveur internet (BIND, Apache, Nginx, Dovecot, Postfix...)
Extraits du livre
Installation et configuration d'un serveur internet (BIND, Apache, Nginx, Dovecot, Postfix...)
2 avis
Revenir à la page d'achat du livre

Planification de tâches

Introduction

Pour maintenir l’intérêt du travail et pour économiser du temps, il est important d’automatiser autant que possible les tâches répétitives. L’application la plus importante et la plus connue pour cela sur les systèmes Unix est cron.

Network Time Protocol (NTP)

Pour planifier les tâches de façon fiable, il est important que l’horloge du système soit précise. Le NTP (en anglais : Network Time Protocol, protocole de temps réseau) est un protocole qui permet de synchroniser l’horloge avec d’autres horloges dans le réseau. Ces horloges ne se trouvent pas nécessairement dans le même fuseau horaire : les serveurs et clients NTP utilisent l’UTC (temps universel coordonné) pour se synchroniser et, ensuite, le client corrige l’heure pour le fuseau horaire local. Un client peut synchroniser avec plusieurs serveurs ; la synchronisation avec plusieurs serveurs est même conseillée pour augmenter la fiabilité.

Le paquet qui livre un daemon et un client NTP s’appelle simplement ntp. Une solution alternative souvent utilisée s’appelle OpenNTPD, un logiciel développé pour OpenBSD qui fait également partie du catalogue de logiciels portés de FreeBSD et des dépôts de logiciels de Debian.

Pour pouvoir synchroniser l’horloge du serveur avec un serveur NTP sur internet, le port UDP 123 doit être ouvert pour le trafic sortant dans le pare-feu. Si le serveur doit également servir de serveur NTP pour d’autres ordinateurs, le port UDP 123 doit aussi être ouvert pour le trafic entrant. Cette dernière fonctionnalité...

Cron

Cron est un daemon qui vérifie chaque minute s’il y a des tâches à accomplir, et les exécute si c’est le cas. Le nom cron vient de χρόνος (chronos), le mot grec pour temps ou heure.

Une tâche planifiée avec cron s’appelle un cronjob et le fichier dans lequel sont définis les cronjobs s’appelle un crontab (en anglais : cron table, liste des crons). Des exemples des cronjobs courants sont la création de sauvegardes, la recherche des mises à jour, les scans périodiques des virus et des rootkits, l’envoi des mailings, etc.

En principe, chaque utilisateur peut avoir son propre crontab, mais l’administrateur système peut limiter l’accès à cron à l’aide des fichiers nommés allow (permettre) et deny (refuser). Si le fichier allow existe et qu’il ne contient pas le nom d’un certain utilisateur, ce dernier ne peut pas se servir de cron. Si le fichier allow n’existe pas, mais que le fichier deny existe et qu’il contient le nom d’un certain utilisateur, cet utilisateur ne peut pas se servir de cron. Si aucun des fichiers allow et deny n’existe, tous les utilisateurs peuvent se servir de cron.

Sous FreeBSD, le fichier allow est /var/cron/allow et le fichier deny est /var/cron/deny. Sous Linux, ce sont respectivement /etc/cron.allow et /etc/cron.deny.

La commande...

Anacron

Une variante de cron qui doit être évoquée est anacron. Ce daemon a, en principe, les mêmes fonctionnalités que cron mais il part du principe que le serveur n’est pas toujours allumé. Si un cronjob a été raté parce que le serveur était éteint, avec cron cette tâche ne sera plus exécutée ; anacron, par contre, exécutera cette tâche quand le serveur sera rallumé.

Comme le serveur décrit dans ce livre est censé être allumé tout le temps, anacron ne sera pas détaillé ici.

At

La commande at (à) sert à la planification des tâches uniques. Sous Debian et CentOS, cette application ne fait pas partie de l’installation de base ; sous Debian, le daemon est lancé automatiquement après l’installation.

debian# apt install at 
 
centos# yum install at 
centos# systemctl enable atd 
centos# systemctl start atd 

Pour planifier l’exécution d’une commande, celle-ci est envoyée en texte vers le flux STDIN de la commande at ; l’heure de l’exécution est spécifiée comme argument de ligne de commande. La commande suivante peut ainsi servir à planifier un redémarrage du système samedi matin prochain à 3h30 :

# echo "reboot" | at 03:30 Saturday 

La commande qui sera exécutée le samedi matin à 3h30 n’est alors pas echo "reboot", mais reboot ; echo est employée seulement pour envoyer la commande à at.

Une autre utilisation pratique est la suivante, par exemple :

  • L’administrateur système a créé des nouvelles règles pour le pare-feu, mais il n’est pas tout à fait sûr qu’elles soient bonnes.

  • Avant de charger ces nouvelles règles dans le pare-feu, l’administrateur planifie une tâche at pour recharger les anciennes règles fonctionnelles dans le pare-feu...