GNU/Linux >> Tutoriels Linux >  >> Linux

Conseils Linux pour utiliser cron pour planifier des tâches

Faire en sorte que les choses se produisent selon un calendrier régulier et prévisible est important sur les ordinateurs. C'est important car, en tant qu'êtres humains, nous pouvons parfois avoir du mal à nous rappeler de faire les choses de manière fiable parce que nous sommes distraits, que nous avons trop de choses en tête ou que nous sommes en vacances. Les ordinateurs sont vraiment doués pour faire les choses selon un calendrier, mais un humain doit programmer l'ordinateur avant que l'ordinateur n'agisse.

D'une certaine manière, le cron system est une introduction facile et rudimentaire à la programmation. Vous pouvez faire en sorte que votre ordinateur fasse ce que vous voulez qu'il fasse simplement en éditant un fichier. Vous n'avez même pas besoin de savoir où le fichier est conservé. Vous n'avez qu'à taper une simple commande, entrer la "recette" que vous voulez que votre ordinateur suive et enregistrer votre travail. A partir de là, votre ordinateur exécute vos instructions à l'heure indiquée jusqu'à ce qu'on lui dise de s'arrêter.

De par sa conception, cron n'est pas un système complexe. Voici ce que vous devez savoir à ce sujet.

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Qu'est-ce que cron ?

Le cron La commande est si omniprésente sous Linux et Unix, et elle a été imitée et réinventée si souvent que c'est presque un terme générique pour quelque chose qui se produit selon un calendrier . C'est une forme d'automatisation, et bien qu'il existe différentes implémentations (cron de Dillon, cron de Vixie, chrony et autres), et des variantes comme anacron et les minuteurs systemd, la syntaxe et le flux de travail sont restés essentiellement les mêmes pendant des décennies.

Cron fonctionne sur un système "spool", un peu comme les imprimantes et le courrier électronique. Si vous ne saviez pas que les imprimantes et les e-mails utilisent un spool, ce n'est pas grave car le but d'un fichier spool est que vous n'êtes pas censé y penser beaucoup. Sur un système Linux, le répertoire /var/spool est conçu comme un hub central pour les fichiers importants mais de bas niveau avec lesquels l'utilisateur n'est pas censé interagir directement. Un des spools gérés dans /var/spool est cron tables ou "crontab" pour faire court. Chaque utilisateur, y compris vous-même, sur un système Linux a une crontab. Les utilisateurs peuvent modifier, afficher et supprimer leur propre crontab. De plus, les utilisateurs peuvent utiliser leur crontab pour planifier des tâches. Le cron le système lui-même surveille les crontabs et s'assure que toute tâche répertoriée dans une crontab est exécutée à l'heure spécifiée.

Modifier les paramètres cron

Vous pouvez modifier votre crontab en utilisant le crontab commande avec le -e (pour modifier ) option. Par défaut, la plupart des systèmes appellent le vim éditeur de texte. Si, comme moi, vous n'utilisez pas Vim, vous pouvez définir un éditeur différent pour vous-même dans votre ~/.bashrc dossier. J'ai mis le mien sur Emacs, mais vous pouvez aussi essayer Nano, Kate ou n'importe quel éditeur préféré. L'EDITEUR La variable d'environnement définit l'éditeur de texte que vous utilisez dans votre terminal, tandis que la variable VISUAL variable définit quel éditeur vous utilisez en mode graphique :

export EDITOR=nano
export VISUAL=kate

Actualisez votre session shell avec vos nouveaux paramètres :

$ source ~/.bashrc

Vous pouvez maintenant modifier votre crontab avec votre éditeur préféré :

$ crontab -e

Planifier une tâche

Le cron est essentiellement un système de calendrier. Vous pouvez dire à cron la fréquence d'exécution d'une tâche à l'aide de cinq attributs différents :minute, heure, date, mois, jour de la semaine. L'ordre de ces attributs est strict et pas nécessairement intuitif, mais vous pouvez les considérer comme des filtres ou des masques. Par défaut, vous pourriez penser que tout est défini sur toujours ou tous . Cette entrée exécuterait touch /tmp/hello en haut de chaque minute pendant chaque heure de chaque jour toute l'année :

* * * * * touch /tmp/hello

Vous pouvez limiter cette planification globale en définissant des définitions spécifiques pour chaque attribut. Pour que la tâche s'exécute sur la demi-heure de chaque heure, définissez les minutes sur 30 :

30 * * * * touch /tmp/hello

Vous pouvez encore contraindre cette instruction avec une heure spécifique. Cette tâche s'exécute à 3 h 30 tous les matins :

30 3 * * * touch /tmp/hello

Vous pouvez également exécuter la tâche uniquement le premier de chaque mois :

30 3 1 * * touch /tmp/hello

Vous pouvez définir un mois en utilisant 1 pour janvier jusqu'à 12 pour décembre, et vous pouvez définir un jour en utilisant 0 pour dimanche jusqu'à 6 pour samedi. Cette tâche s'exécute à 3h15 pendant le mois d'avril, uniquement les lundis :

15 3 * 4 1 touch /tmp/hello

Définir les incréments

Tous ces paramètres correspondent à une valeur exactement . Vous pouvez également utiliser cron notation pour exécuter des tâches après un intervalle de temps défini. Par exemple, vous pouvez exécuter une tâche toutes les 15 minutes :

*/15 * * * * touch /tmp/hello

Vous pouvez exécuter une tâche à 10 h 00 tous les trois jours :

* 10 */3 * * touch /tmp/hello

Vous pouvez exécuter une tâche toutes les six heures :

* */6 * * * touch /tmp/hello

Raccourci Cron

cron moderne les implémentations ont ajouté un raccourci pratique pour les horaires communs. Ce sont :

  • @hourly
  • @daily
  • @weekly
  • @monthly
  • @yearly or @annually

Répertorier les tâches cron

Utilisation de la crontab commande, vous pouvez voir une liste de vos cron planifiés emplois :

$ crontab -l
15 3 * 4 1 touch /tmp/hello

Supprimer une crontab

Lorsque vous avez terminé avec un crontab, vous pouvez le supprimer avec le -r choix :

$ crontab -r -i

Le -i option signifie interactif . Il vous demande confirmation avant de supprimer le fichier.

Ce que cron peut faire

C'est une chose de savoir utiliser cron , mais c'est une autre chose de savoir à quoi ça sert. Le cas d'utilisation classique est un bon plan de sauvegarde. Si votre ordinateur est allumé presque toute la journée ou toute la journée et toute la nuit, vous pouvez planifier une sauvegarde de routine d'une partition importante. J'exécute une application de sauvegarde appelée rdiff-backup sur ma partition de données principale tous les jours à 3h :

$ crontab -l | grep rdiff
* 3 * * * rdiff-backup /data/ /vault/

Une autre utilisation courante est la maintenance du système. Sur mon bureau Slackware, je mets à jour mon catalogue de dépôt local tous les vendredis après-midi :

$ crontab -l | grep slack
* 14 * * 5 sudo slackpkg update

Je pourrais également exécuter un script Ansible à 15h00 tous les trois jours pour ranger mon dossier Téléchargements :

$ crontab -l | grep ansible
* 15 */3 * * ansible-playbook /home/seth/Ansible/cleanup.yaml

Un petit investissement dans la santé de votre environnement informatique est très utile. Il existe des scripts de déduplication, la taille du fichier et /tmp des moniteurs de répertoires, des redimensionneurs de photos, des déménageurs de fichiers et de nombreuses autres tâches subalternes que vous pouvez programmer pour qu'elles s'exécutent en arrière-plan afin de garder votre système épuré. Avec cron , votre ordinateur peut prendre soin de lui-même d'une manière que j'aimerais que mon appartement physique puisse faire.

Mémoriser les paramètres cron

En plus de trouver pourquoi vous avez besoin de cron , la chose la plus difficile à propos de cron d'après mon expérience, je me souviens de sa syntaxe. Répétez-vous ceci, encore et encore jusqu'à ce que vous l'ayez mémorisé :

Minutes, heures, date, mois, jour de la semaine.

Minutes, heures, date, mois, jour de la semaine.

Minutes, heures, date, mois, jour de la semaine.

Mieux encore, téléchargez notre aide-mémoire gratuit pour avoir la clé à portée de main lorsque vous en avez le plus besoin !


Linux
  1. Planification des tâches avec la commande Linux cron

  2. 3 conseils pour imprimer avec Linux

  3. Planification des tâches système avec Cron sous Linux

  4. 8 conseils pour une automatisation fiable du système Linux

  5. Utilisation de variables dans SQLCMD pour Linux

Conseils pour utiliser la commande top sous Linux

Comment automatiser des tâches sous Linux à l'aide de Crontab

Conseils d'utilisation de tmux

Conseils d'utilisation de l'écran

Comment planifier une tâche dans Plesk pour Linux

Planifier des travaux sous Linux avec la commande 'at'