11 exemples de tâches de planification Cron sous Linux
Dans cet article, nous allons examiner et voir comment nous pouvons planifier et exécuter automatiquement des tâches Linux en arrière-plan à intervalles réguliers à l’aide de la commande Crontab.
La gestion manuelle d’un travail fréquent est une tâche ardue pour les administrateurs système et ces tâches peuvent être planifiées et exécutées automatiquement en arrière-plan sans intervention humaine à l’aide du démon cron dans un système d’exploitation de type Linux ou Unix.
Par exemple, vous pouvez automatiser la sauvegarde du système Linux, planifier les mises à jour et la synchronisation des fichiers, et bien d’autres choses encore à l’aide du démon Cron, qui est utilisé pour exécuter des tâches planifiées à partir de la ligne de commande ou utiliser des outils en ligne pour générer des tâches cron.
Cron se réveille toutes les minutes et vérifie les tâches planifiées en dénombrable - Crontab (CRON TABle) est une table où nous pouvons planifier ce genre de tâches répétées.
Conseils: Chaque utilisateur peut disposer de son propre crontab pour créer, modifier et supprimer des tâches. Par défaut, cron est activé pour les utilisateurs, cependant, nous pouvons restreindre les utilisateurs en ajoutant une entrée dans le fichier /etc/cron.deny.
Crontab sous Linux
Le fichier Crontab se compose de commandes par ligne et comporte six champs séparés par un espace ou une tabulation. Les cinq premiers champs représentent le temps nécessaire à l’exécution des tâches et le dernier champ concerne la commande.
- Minute (valeurs de maintien entre 0 et 59)
- Heure (valeurs de maintien entre 0 et 23)
- Jour du mois (valeurs comprises entre 1 et 31)
- Le mois de l’année (maintenez les valeurs entre 1 et 12 ou janvier-décembre, vous pouvez utiliser les trois premières lettres du nom de chaque mois, c’est-à-dire janvier ou juin).
- Jour de la semaine (maintenez les valeurs entre 0-6 ou dim-sam, ici aussi vous pouvez utiliser les trois premières lettres du nom de chaque jour, c’est-à-dire dim ou mer.)
- Commande : /chemin/vers/commande ou script que vous souhaitez planifier.
1. Répertorier les entrées Crontab
Listez ou gérez la tâche à l’aide de la commande crontab avec l’option -l pour l’utilisateur actuel.
# crontab -l
00 10 * * * /bin/ls >/ls.txt2. Modifier les entrées Crontab
Pour modifier l’entrée crontab, utilisez -e l’option ci-dessous. L’exemple ci-dessous ouvrira les tâches planifiées dans l’éditeur de VI. Apportez les modifications nécessaires et arrêtez d’appuyer sur les touches :wq qui enregistrent automatiquement le réglage.
# crontab -e3. Liste des tâches cron planifiées de l’utilisateur
Pour répertorier les tâches planifiées d’un utilisateur particulier appelé tecmint à l’aide de l’option -u (Utilisateur) et -l (Liste).
# crontab -u tecmint -l
no crontab for tecmintnote: Seuls les utilisateurs root ont tous les privilèges pour voir les entrées crontab des autres utilisateurs. Les utilisateurs normaux ne peuvent pas voir les autres.
4. Supprimer l’entrée Crontab
prudence: Crontab avec -r le paramètre supprimera les tâches planifiées complètes sans confirmation de Crontab. Utilisez l’option -i avant de supprimer la crontab de l’utilisateur.
# crontab -r5. Demander avant de supprimer Crontab
crontab avec -i l’option vous demandera une confirmation de l’utilisateur avant de supprimer la crontab de l’utilisateur.
# crontab -i -r
crontab: really delete root's crontab?6. Caractères spéciaux autorisés (*, -, /, ?, #)
- Astérisque(*) – Correspond à toutes les valeurs du champ ou à toute valeur possible.
- Trait d’union(-) – Pour définir une plage.
- Barre oblique (/) – 1ère zone /10 signifiant toutes les dix minutes ou incrément de portée.
- La virgule (,) – Pour séparer les éléments.
7. Calendrier Cron à l’échelle du système
Un administrateur système peut utiliser le répertoire cron prédéfini comme indiqué ci-dessous.
- /etc/cron.d
- /etc/cron.daily
- /etc/cron.hourly
- /etc/cron.monthly
- /etc/cron.weekly
8. Planifiez un travail pour une heure précise
Les tâches ci-dessous suppriment les fichiers et répertoires vides de /tmp à 12h30 tous les jours. Vous devez mentionner le nom d’utilisateur pour exécuter la commande crontab. Dans l’exemple ci-dessous, utilisateur root effectue une tâche cron.
# crontab -e
30 0 * * * root find /tmp -type f -empty -delete9. Cordes spéciales pour l’horaire commun
| Cordes | Significations |
|---|---|
| @reboot | La commande s’exécutera au redémarrage du système. |
| @quotidien | Une fois par jour ou peut utiliser @midnight. |
| @hebdomadaire | Une fois par semaine. |
| @annuel | Une fois par an. Nous pouvons également utiliser le mot-clé @annually. |
Besoin de remplacer cinq champs de la commande cron par des mots-clés si vous souhaitez utiliser les mêmes.
10. Commandes multiples avec double esperluette (&&)
Dans l’exemple ci-dessous, les commandes 1 et 2 s’exécutent quotidiennement.
# crontab -e
@daily <command1> && <command2>11. Désactivez les notifications par e-mail.
Par défaut, cron envoie un e-mail au compte utilisateur exécutant cronjob. Si vous souhaitez le désactiver, ajoutez votre tâche cron similaire à l’exemple ci-dessous. L’utilisation de l’option >/dev/null 2>&1 à la fin du fichier redirigera toute la sortie des résultats cron sous /dev/null.
[root@tecmint ~]# crontab -e
* * * * * >/dev/null 2>&1conclusion: L’automatisation des tâches peut nous aider à effectuer nos tâches de meilleure manière, sans erreur et efficacement. Vous pouvez vous référer à une page de manuel de crontab pour plus d’informations en tapant la commande 'man crontab' dans votre terminal.