Recherche de site Web

Crontab sous Linux


Avec l'avènement des nouvelles technologies, nous voulons que tout soit automatisé, y compris nos systèmes informatiques. Par exemple, en tant qu'administrateur système, nous pouvons souhaiter que notre sauvegarde soit exécutée tous les soirs à 2h00 du matin. Alors à quoi servent les ordinateurs si nous devons nous réveiller tous les jours à 2h00 et exécuter les commandes manuellement pour lancer la sauvegarde. Il devrait y avoir un moyen qui indique au système d'exécuter automatiquement une sauvegarde à un moment précis. Heureusement, Linux OS propose un utilitaire cron qui permet d'automatiser des tâches à une période précise.

Cron est un utilitaire de ligne de commande efficace et populaire utilisé pour planifier un large éventail de tâches à un moment précis sans interaction de l'utilisateur. Les tâches planifiées sont appelées tâches cron tandis que la crontab est la liste du fichier contenant les tâches cron.

Dans cet article, nous expliquerons avec divers exemples que vous pouvez modifier et utiliser le fichier crontab afin de planifier des tâches dans le système Debian 10.

Cron peut être utilisé pour automatiser des tâches dans les scénarios suivants :

  • Exécution de sauvegardes planifiées,

  • Vérification de l'espace disque à un intervalle spécifique,

  • Exécution de la maintenance automatique,

  • Suppression périodique des fichiers indésirables,

  • Exécution d'un diagnostic réseau

Syntaxe

Il est plus facile de travailler avec cron, une fois que vous avez compris sa syntaxe. La syntaxe générale pour utiliser cron est :

* * * * /path/to/script.sh

Chacun des champs correspond aux éléments suivants :

Minute (0-59) Hour (0-24) Day_of_the_Month (1-7) Month_of_the_Year (1-12)
Day_of_the_Week  (0-6) command

Installer Cron

Cron est préinstallé dans Debian 10. Cependant, s'il est absent de votre système, exécutez la commande suivante pour l'installer :

$ sudo apt install cron

Afficher la tabulation

Pour afficher le fichier crontab, utilisez la commande suivante :

$ crontab –l

Pour afficher le fichier crontab d'un utilisateur particulier, utilisez la commande suivante :

$ sudo crontab –u user -l

Modifier la tabulation

Pour modifier le fichier crontab de l'utilisateur actuel :

$ crontab –e

Pour modifier le fichier crontab d'un utilisateur particulier :

$ sudo crontab -u user

Si vous modifiez le fichier crontab pour la première fois, il vous sera demandé de choisir un éditeur :

Une fois l'éditeur sélectionné, la fenêtre suivante apparaît.

Par exemple, vous souhaitez exécuter un script de sauvegarde nommé "backup.sh" situé dans le répertoire des documents tous les jours à 2h00. Pour ce faire, vous devrez ajouter la ligne suivante dans votre fichier crontab :

0 2 * * * /Documents/backup.sh

Dans la fenêtre ci-dessus, vous pouvez ajouter vos tâches cron une par une. Une fois cela fait, enregistrez et quittez le fichier après quoi toutes les tâches cron s'exécuteront automatiquement à l'intervalle spécifié.

Supprimer la crontab

Pour supprimer le fichier crontab, saisissez la commande suivante dans Terminal :

$ crontab -r

Passons maintenant en revue une série d'exemples de tâches cron sur une machine Linux.

1. Exécutez une tâche cron toutes les minutes

Pour exécuter une tâche cron toutes les minutes, ajoutez la ligne suivante dans votre fichier crontab :

* * * * * /path/to/script.sh

2. Exécutez une tâche cron toutes les 10 minutes

Pour planifier l'exécution d'une tâche cron toutes les 10 minutes, ajoutez la ligne suivante dans votre fichier crontab.

*/10 * * * * /path/to/script.sh

3. Exécutez une tâche cron sur des mois spécifiques

Pour programmer une tâche cron à exécuter sur des mois spécifiques, par ex. Mars, août, décembre, ajoutez la tâche cron dans votre fichier crontab de la manière suivante :

* * * jan,may,aug * /path/to/script.sh

4. Exécutez une tâche cron certains jours

Si vous souhaitez que votre tâche cron soit exécutée certains jours, supposons que dimanche et vendredi à 17 heures, cela devrait ressembler à ce qui suit.

0 17 * * sun,fri /path/to/script.sh

5. Exécutez une tâche cron quotidiennement à une heure précise

Pour programmer une tâche cron à exécuter quotidiennement à une heure précise, disons à 3 heures du matin, ajoutez cette ligne dans votre fichier crontab.

0 3 * * * /path/to/script.sh

6. Exécutez une tâche cron un jour précis

Pour programmer une tâche cron à exécuter un jour spécifique, disons tous les dimanches, ajoutez cette ligne dans votre fichier crontab.

0 0 * * SUN /path/to/script.sh

Le travail s'exécutera à 00:00 tous les dimanches.

7. Exécutez plusieurs tâches dans une seule tâche cron

Pour planifier plusieurs tâches dans une seule tâche cron, ajoutez tous les scripts dans votre fichier crontab en les séparant par un point-virgule.

* * * * * /path/to/script1.sh; /path/to/script2.sh

8. Exécutez une tâche cron chaque jour de la semaine

Pour planifier l'exécution d'une tâche cron tous les jours de la semaine, du lundi au vendredi, vous devrez ajouter cette ligne dans votre fichier crontab.

0 0 * * 1-5 /path/to/script.sh

Le travail s'exécutera à 00h00 tous les jours de la semaine.

9. Exécutez une tâche cron deux fois par jour

Pour programmer une tâche à exécuter deux fois par jour, par ex. à 6h et 15h, vous devrez ajouter cette ligne dans votre fichier crontab :

0 6,15 * * * /path/to/script.sh

10. Exécutez une tâche cron toutes les heures

Pour planifier l'exécution d'une tâche cron toutes les heures à la minute 0, vous devrez ajouter cette ligne dans votre fichier crontab :

0 * * * * /path/to/script.sh

Par exemple, si l'heure actuelle est 14h00, le travail s'exécutera à 15h00, 16h00 et ainsi de suite.

11. Exécutez une tâche cron toutes les 3 heures

Pour planifier l'exécution d'une tâche cron toutes les 3 heures à la minute 0, vous devrez ajouter cette ligne dans votre fichier crontab :

0 */3 * * * /path/to/script.sh

Par exemple, si l'heure actuelle est 14h00, le travail s'exécutera à 17h00, 20h00 et ainsi de suite.

12. Exécutez la tâche cron à 16h00 le premier de chaque mois

Pour programmer une tâche pour qu'elle s'exécute le premier jour de chaque mois à 16h00, vous devrez ajouter cette ligne dans votre fichier crontab :

0 16 1 * * /path/to/script.sh

Cordes dans Crontab

Vous pouvez également utiliser les chaînes suivantes plutôt que les longues commandes répétitives.

@hourly- Run cron job every hour i.e. “0 * * * *

@midnight- Run cron job every day i.e. “0 0 * * *

@daily- same as midnight

@weekly- Run cron job every week, i.e. “0 0 * * 0

@monthly- Run cron job every month i.e. “0 0 1 * *

@annually- Run cron job every year i.e. “0 0 1 1 *

@yearly- same as @annually

@reboot- Run cron job at every boot

Par exemple, pour exécuter la tâche cron tous les jours pendant la première minute et la première heure, ajoutez la ligne suivante :

@daily /path/to/script.sh

Par exemple, pour exécuter la tâche cron à chaque redémarrage du serveur :

@reboot /path/to/script.sh

C'est tout ce qu'il y a à faire ! Dans cet article, nous avons appris à automatiser diverses tâches à l'aide de crontab dans le système Debian. En utilisant les exemples ci-dessus, vous pouvez planifier n'importe quel type de tâche à lancer sans aucune interaction de l'utilisateur.