Les deux premiers chiffres représentent le temps dans lequel la commande sera exécutée, le premier chiffre étant la minute et le second les heures. Le format d’heure utilisé par Crontab est de 24 heures, donc si nous voulons effectuer la tâche à 5 heures de l’après-midi, ce serait le nombre 17. Les astérisques représentent toutes les valeurs, tandis que le nombre 0 correspond aux dimanches.
Ne confondez pas Cron avec Crontab
Alors que Crontab nous permet d’effectuer la automatisations de notre système, ceux-ci sont exécutés, mais pas exclusivement, avec l’application Cron, une application qui s’exécute en arrière-plan et qui exécute toutes les tâches que nous avons précédemment configurées dans Crontab. Cette application utilise l’heure de notre système pour les exécuter, il est donc important, si nous utilisons une machine virtuelle, que l’heure de la machine invitée et celle de notre équipe soient toujours les mêmes, car sinon, l’heure programmée sera pas être correct.
Cron lit le contenu du fichier Crontab toutes les minutes, nous pouvons donc le modifier à tout moment pour effectuer des tâches que nous voulons effectuer dans la même session, sans avoir besoin de forcer l’application à relire son contenu pour trouver de nouveaux scripts à exécuter .
Tous les utilisateurs n’ont pas la possibilité de créer des fichiers Crontab pour automatiser les tâches système. L’administrateur système a la possibilité d’autoriser ou de refuser cette option via le fichier cron.allow ou cron.den respectivement, fichiers situés dans /etc/cron.do /etc/ selon la version de la distribution Linux que nous avons. installé sur notre ordinateur.
Comment automatiser des tâches sous Linux
Comme nous l’avons mentionné ci-dessus, les scripts Crontab commencent par la date à laquelle nous voulons qu’ils soient exécutés, suivis de la commande. La syntaxe de Crontab est la suivante.
Gestion des horaires
minuto hora día-del-mes mes día-de-la-semana ruta-comandos
- Minute, cela peut aller de 0 à 59
- Le temps, comme nous l’avons mentionné, Crontab utilise le calendrier de 24 heures, donc la plage de nombres va de 0 à 23.
- Jour du mois, il n’y a pas grand mystère, dans ce paramètre puisqu’il va de 1 à 31.
- Mois, de 1 à 12
- 1er janvier
- 2 février
- 3 mars
- 4 avril
- Le 5 mai
- 6 juin
- 7 juillet
- 8 août
- 9 septembre
- 10 octobre
- 11 novembre
- 12 décembre.
- Jour de la semaine, de 0 à 6, le dimanche étant le chiffre 0, bien que certaines versions de Crontab autorisent également l’utilisation du chiffre 7. Ainsi, le code des jours de la semaine est
- 0 dimanche
- 1 lundi
- 2 mardi
- 3 mercredi
- 4 jeudi
- 5 vendredi
- 6 samedi
Mais, en plus, on peut aussi utiliser l’astérisque
pour spécifier toutes les valeurs possibles d’une variable. Si nous voulons définir plusieurs valeurs, nous pouvons le faire par une virgule (,) ou une plage de valeurs en les séparant par un trait d’union (-). Nous pouvons également définir différentes étapes avec « / ».
- Si ce n’est toujours pas très clair, nous vous montrons les codes horaires que nous pouvons utiliser pour effectuer des tâches périodiquement en fonction de leur fréquence
- 0 * * * * En utilisant le code temporel, le script s’exécutera toutes les heures sur le point.
- 0 0 * * * Chaque jour le script ne sera exécuté qu’une seule fois
- 0 0 * * 0 Le script s’exécute une fois par semaine
- 0 0 1 * * S’exécutera une fois par mois
0 0 1 1 * Le script sera exécuté une fois par an
crontab nombre-archivo
Une fois que nous sommes clairs sur le fonctionnement de la planification des tâches dans Crontab, la première chose que nous allons faire est de créer le fichier dans lequel nous allons créer tous les processus que nous voulons automatiser à l’aide de la commande suivante
crontab -e
Si nous ne voulons pas en créer un nouveau, ou si nous l’avons déjà créé et que nous voulons le modifier, nous utilisons cette commande
crontab -d
Si nous voulons supprimer le fichier Crontab créé
crontab -d
Avec la commande suivante, nous pouvons lister toutes les tâches incluses dans le fichier crontab
Les administrateurs système peuvent limiter l’utilisation des automatisations du système en modifiant les fichiers cron.allow ou cron.den, qui se trouvent dans /etc/cron.d/ ou /etc/ si nous n’avons pas modifié leur emplacement auparavant.
automatiser les tâches
nano nombrearchivo
Pour éditer le fichier Crontab que nous avons créé, nous allons utiliser l’éditeur de texte inclus dans toutes les distributions Linux, bien que nous puissions également l’éditer directement depuis Crontab en ajoutant la variable -e.
chmod ugo+x nombrearchivo
Nous introduisons le code numérique accompagné d’astérisques et le script que nous voulons exécuter. Ensuite, nous devons donner à Cron les autorisations pour qu’il puisse l’exécuter, sinon il ne connaîtra pas son existence et ne pourra jamais l’exécuter. Pour ce faire, nous utiliserons la commande
Au départ, utiliser Crontab pour automatiser des tâches ne semble pas du tout facile et rappelle le besoin (presque habituel) de Linux de recourir à la ligne de commande pour pratiquement tout, empêchant ainsi davantage d’utilisateurs d’adopter Linux comme système d’exploitation un jour -au jour le jour. .
Le planificateur de tâches de Windows utilise une interface graphique qui n’est pas très facile à utiliser sans les connaissances nécessaires, cependant, il est beaucoup plus intuitif que celui proposé par Linux via la ligne de commande.
Exemple de fonctionnement de Crontab et Cron
crontab prueba
La première chose que nous devons faire pour automatiser les tâches sous Linux est de créer le fichier dans lequel nous allons inclure toutes les commandes que nous voulons exécuter sur l’ordinateur au moment de la configuration. Dans cet exemple, nous allons créer le fichier « test » qui sera chargé de supprimer tous les fichiers et dossiers vides qui se trouvent dans le répertoire tmp. Pour ce faire, nous allons entrer la commande suivante.
find /tmp -type f -empty -delete
Ensuite, nous devons entrer la commande (ou les commandes en les séparant par des points-virgules « ; » sans les guillemets). Dans cet exemple, nous allons utiliser Crontab pour supprimer les fichiers du dossier tmp.
crontab -e
Ensuite, nous éditons le fichier pour ajouter le calendrier, c’est-à-dire quand nous voulons que les tâches que nous avons entrées dans le fichier soient exécutées.
0 10 * * * find /tmp -type f -empty -delete
Pour qu’il soit exécuté tous les jours à 10 heures du matin, nous devons ajouter avant le script 0 10 * * *, en laissant la ligne comme suit Si nous voulons qu’il s’exécute à une autre heure, il suffit de modifier le nombre 10 pour l’heure (au format 24 heures) à laquelle nous voulons qu’il s’exécute. Nous pouvons également utiliser le codes horaires
[code]chmod ugo+x prueba
que nous avons montré dans la section Gestion de la programmation pour le configurer. Enfin, nous utilisons la commande suivante pour que Cron puisse exécuter le fichier d’automatisations que nous avons créé.
Alternatives à Cron
Comme nous l’avons mentionné dans les sections précédentes, Cron est chargé d’exécuter les commandes que nous avons précédemment saisies dans Crontab. Cron est un outil parfait pour les équipes qui fonctionnent 24 heures sur 24, bien que nous puissions également l’adapter à notre horaire de travail, même s’il soustrait des ressources à l’équipe pendant l’exécution des tâches. Si nous recherchons des options plus simples pour Cron, nous vous montrerons certaines des meilleures alternatives.
anachron
sudo apt install anacron
Anacron nous permet de programmer l’exécution automatisée de tâches sur une journée, une semaine ou un mois, à tout moment. Si l’ordinateur est éteint, la prochaine fois que nous démarrerons l’ordinateur, la tâche que nous avons précédemment entrée dans Crontab sera effectuée. Avec Cron, si l’ordinateur est éteint à la date spécifiée, la tâche ne sera pas effectuée lorsque nous allumerons l’ordinateur. Anacron est disponible dans la plupart des distributions Linux et nous pouvons l’installer sur l’ordinateur via la commande suivante.
wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz
pour le télécharger, ou utilisez la commande suivante.
Vous souhaitez savoir comment optimiser les performances de la mémoire et du processeur sous Linux ? Suivez ce guide/tutoriel en vidéo :