crontab

Comment planifier une tâche sous Linux?

Comment planifier une tâche sous Linux?
Chaque fois que vous utilisez un système d'exploitation basé sur UNIX, certaines tâches doivent être effectuées à plusieurs reprises. Les exécuter manuellement à chaque fois prend du temps et est globalement inefficace. Pour résoudre ce problème, UNIX est livré avec ses planificateurs de tâches intégrés. Ces planificateurs de tâches agissent comme un réveil intelligent. Lorsque l'alarme se déclenche, le système d'exploitation exécute la tâche prédéfinie.

Dans le cas de Linux, il est livré avec deux outils basiques mais puissants : Cron daemon (planificateur de tâches par défaut) et at (plus adapté à la planification de tâches ponctuelles).

Dans ce guide, découvrez comment planifier une tâche sous Linux.

Planifier des tâches sous Linux

Cron
Le démon cron est responsable de l'exécution de nombreuses tâches à des moments précis. Ces tâches sont généralement exécutées en arrière-plan à des heures planifiées. Il offre une grande flexibilité quelle que soit la tâche, quel que soit l'intervalle (heure, semaine, mois, année ou autre).

Cron garde une trace de ses actions à l'aide du fichier crontab. Le fichier crontab est un script qui contient toutes les informations nécessaires pour exécuter toutes les tâches cron.

Jetons un coup d'œil rapide à certaines des utilisations de base de cron. Dans le cas de l'une des commandes suivantes, elle sera configurée pour l'utilisateur root si elle est exécutée avec le privilège sudo. Pour la démonstration, j'ai récupéré un exemple de fichier crontab d'ici.

Pour répertorier toutes les tâches cron planifiées pour l'utilisateur actuel, exécutez la commande suivante. Il imprimera tout le contenu du fichier crontab.

$ crontab -l


Vous voulez la liste des tâches cron pour un autre utilisateur? Exécutez cette commande à la place.

$ sudo crontab -u -l


Pour modifier le script crontab, exécutez la commande. Pour modifier le fichier crontab pour root, exécutez la commande suivante avec le privilège sudo.

$ crontab -e


Chaque ligne du script crontab définit une tâche. Voici une ventilation rapide des entrées de crontab.

$

Voici une liste de toutes les valeurs possibles pour tous ces champs. Si vous utilisez un astérisque (*) au lieu d'une valeur numérique, toutes les valeurs possibles du champ seront utilisées.

  • minutes : 0 à 59
  • heures : 0 à 23
  • jour du mois : 1 à 31
  • mois : 1 à 12
  • jour de la semaine : 0 (dimanche) à 6 (samedi)

Pour un guide détaillé sur l'utilisation de crontab pour automatiser des tâches, découvrez comment configurer des tâches cron sous Linux. Voici un autre exemple rapide d'une tâche cron exécutée toutes les minutes.

à
Alors que cron est le principal moyen de planification des tâches, at offre la possibilité d'exécuter une commande/un script à une heure spécifique ou à un intervalle fixe, notez que at exécutera le travail cible une fois alors que cron réexécuterait le travail à l'intervalle. L'outil at est moins populaire que cron, mais il est relativement plus facile à utiliser. Vous pouvez utiliser certains mots clés comme minuit ou l'heure du thé (4 P.M.).

Cet outil n'est pas pré-installé dans la plupart des distributions Linux. Pour installer sur, exécutez la commande appropriée en fonction de votre distribution.

Pour Debian/Ubuntu et dérivés.

$ Sudo apt install -y à


Pour CentOS/RHEL et dérivés.

$ miam installer à

Pour Arch Linux et dérivés.

$ sudo Pacman -S à

Pour Fedora et dérivés.

$ sudo dnf installer à

Une fois l'installation terminée, activez le démon at.

$ sudo systemctl enable --now atd.un service


La façon de travailler est un peu différente. Chaque fois que vous appelez à, vous devez définir l'intervalle d'exécution de la tâche souhaitée. Par exemple, pour exécuter une certaine commande après une heure, utilisez la commande suivante.

$ maintenant + 1 heure


Pour exécuter la tâche souhaitée à 6 P.M., dans six jours, exécutez plutôt la commande suivante.

$ à 18h + 6 jours


Lorsque vous exécutez la commande, at demandera la ou les commandes à exécuter. Pour quitter l'invite at, appuyez sur "Ctrl + d.” At présentera un résumé des tâches planifiées et l'heure à laquelle elles seront exécutées.

C'est juste un usage basique. Une manière plus cohérente d'utiliser at pourrait être d'exécuter un script bash contenant toutes les tâches à effectuer. Intéressé à en savoir plus sur les scripts bash? Vérifier

$ à 18h + 6 jours -ff