Comment planifier des tâches sous linux avec cron et crontab

Saviez-vous que Blade Runner

est fixé en 2019? Cela fait trois ans à partir de maintenant! Sans parler de Retour vers le futur 2, où ils le temps Voyage en avant 2015. Pourtant, nous n`avons des voitures volantes et il n`y a pas réplicants parmi nous (pour autant que je sache).

linux-Cron-emploi guillemet

Il est facile de se sentir déçu par la technologie actuelle quand on le compare aux représentations fictives de l`avenir. Pourtant, ces jours-ci nos téléphones, ordinateurs, et même maisons peuvent faire des choses étonnantes. La capacité d`automatiser des tâches est l`un d`entre eux.5 bricolage Home Automation Projets pour commencer avec votre Smart Home5 bricolage Home Automation Projets pour commencer avec votre Smart HomeEn ce qui concerne la création de maisons intelligentes, la plupart des gens ne savent pas où commencer. Voici que vous pouvez construire dès maintenant cinq projets de maison intelligente débutants de base.Lire la suite

Chaque utilisateur Linux peut bénéficier de la planification des tâches, si elles sont (comme liés au système de nettoyage de vieux journaux et paquets de mise à jour) Ou au service de l`utilisateur (vérification du courrier électronique, téléchargement de podcasts ...). Les utilisateurs de Windows ont eu Planificateur de tâches depuis Windows 95. L`utilitaire qui fait le même travail sur Linux est appelé Cron, et ici nous allons vous expliquer comment l`utiliser.

Qu`est-ce que Cron?

Cron est un service de système qui fonctionne en arrière-plan, vérifie les tâches planifiées, et les exécute si elle en trouve. Les tâches - aussi appelées «emplois cron» - sont définis dans les fichiers de configuration spéciaux (crontab), qui analyse chaque minute Cron. Plusieurs versions de Cron peuvent être trouvés à travers sur les différentes distributions Linux. Par exemple, la fourchette de Fedora de Cron est appelé cronie, et il y a aussi fcron, bcron et dcron. Certains ont des fonctionnalités supplémentaires, tandis que d`autres sont plus axés sur la sécurité, mais ils sont tous basés sur la même idée.5 idées de configuration Linux Débutant Pour Cron & Scripts Shell5 idées de configuration Linux Débutant Pour Cron & Scripts ShellAvec les scripts bash, vous pouvez faire une série de tâches complexes en une seule fois rapide, donc il est idéal pour les besoins complexes et répétitifs. Il est aussi un excellent moyen d`apprendre à connaître terminal.Lire la suite

Ce guide est écrit pour vixie-Cron, qui est la version la plus répandue de Cron et celui que vous trouverez sur Ubuntu et ses dérivés. Bien que la plupart des instructions sont valables pour d`autres implémentations Cron aussi, il pourrait y avoir des différences mineures, afin de vérifier leurs manuels si vous décidez de changer.

Qu`est-ce qu`un Crontab?

Si vous êtes sérieux au sujet de la gestion de votre temps, vous avez probablement un calendrier de quelque sorte - une application ou d`au moins un morceau de papier. Crontab est très bien comme le calendrier de votre ordinateur. Il contient les informations sur les tâches planifiées, indiquant que les commandes cron pour exécuter à quel moment.Organisez votre temps avec ces 4 Linux Calendrier AppsOrganisez votre temps avec ces 4 Linux Calendrier AppsEst-il logique d`utiliser encore une application de calendrier de bureau? Nous pensons donc, en particulier pour permettre l`accès à des événements sur tout appareil synchronisé. Ces applications de calendrier Linux sont particulièrement utiles.Lire la suite

Video: Administration de GNU/Linux (Linux201 cours 12 - crontab, startup)

En fait, plusieurs crontab sont sur votre système. Chaque utilisateur a son propre crontab, y compris la racine (l`administrateur). crontab utilisateur sont stockés dans / Var / spool / cron / crontabs /. le crontab commande liste le fichier crontab pour l`utilisateur actuel. Vous pouvez vérifier la crontab racine avec crontab -l sudo.

De plus, il y a le fichier crontab du système / Etc / crontab qui est utilisé pour les tâches de l`ensemble du système. Habituellement, ils prennent la forme d`exécutables, scripts appartenant à root placés dans /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, et /etc/cron.monthly/ dossiers, et sur certaines distributions, la /etc/cron.d/ dossier ainsi. D`une manière générale, vous ne devriez pas avoir à faire face à ces tâches, comme la plupart d`entre eux sont créés automatiquement par les applications installées.

Comment planifier des tâches avec Cron

Il semble simple: planifier des tâches, il suffit de les ajouter à votre crontab. Depuis crontab est un fichier de configuration spéciale, il est recommandé de ne pas modifier manuellement. , Utilisez plutôt la crontab -e commander. Pour modifier la racine ou d`autres crontabs utilisateurs, exécutez la commande avec des privilèges d`administrateur et d`ajouter leur nom d`utilisateur après l`option -u:

La -e racine crontab sudo
-u nom d`utilisateur crontab -e sudo

linux-Cron-emploi-crontab-éditeur

Le fichier crontab comporte deux sections. La première contient des variables d`environnement qui sont mis en place automatiquement. Vous pouvez modifier le chemin en toute sécurité, HOME, et les variables SHELL, et modifier la variable MAIL.

La deuxième partie du dossier est le « calendrier » réel avec vos tâches planifiées. Chaque tâche occupe une ligne (ligne) dans la table, avec des colonnes représentant les valeurs suivantes:

linux-Cron-emploi-crontab

Pour planifier avec succès les tâches, vous devez savoir un peu sur la syntaxe crontab:

  • Les chiffres doivent être des nombres entiers (nombres entiers), et vous pouvez utiliser l`astérisque (*) dans l`une des colonnes comme un joker, ce qui signifie « chaque minute / jour / mois ... ».
  • Dans la colonne colonne « Jour du mois », veillez à ne pas fixer une date qui ne se produit pas dans le mois spécifié dans le « Mois » (par exemple, le 30 de Février).
  • Les deux colonnes acceptent des noms courts pour les mois et les jours « mois » et « jour de la semaine », respectivement, et ils sont insensibles à la casse.
  • Dans la colonne « Jour de la semaine », à la fois 0 et 7 représentent dimanche. La « Heure » colonne nécessite le format « temps militaire » (24 heures), mais vous ne pouvez pas utiliser le numéro 24 - à la place, 0 représente 00 heures C`est parce que les valeurs de minute, heure et le jour de début de semaine à 0 au lieu de 1.
  • Secondes ne sont pas pris en charge, de sorte que vous ne pouvez pas planifier une tâche à une seconde donnée.

Ce que vous pouvez faire est l`horaire des plages horaires y compris au moyen d`un trait d`union (14-22 sous la rubrique « Heures » se déroulera la tâche continue 14:00-22:00), ou d`exécuter une seule tâche à plusieurs reprises en définissant une liste séparée par des virgules (1, 3,5 sous la rubrique « jour de la semaine » se déroulera la tâche lundi, mercredi et vendredi).

Pendant ce temps, les valeurs de pas, sont représentées par une barre oblique (/), et ceux-ci indiquent la quantité de skips dans un par exemple Range-, 3-20 / 3 sous « Heures » se déroulera la tâche toutes les trois heures de 3 h à 8 pm Ceci est utile lorsque vous voulez répéter des tâches toutes les X heures, parce que vous pouvez combiner un astérisque et une étape (* / X). Vous pouvez combiner des plages avec des listes et des étapes avec des gammes aussi longtemps que vous utilisez les numéros. En d`autres termes, combinaisons comme « jan-mar » ou « mar, ven-dim » ne sont pas autorisés.

Sinon, au lieu de définir une valeur pour chaque colonne, vous pouvez simplement écrire @weekly, @yearly, @monthly, @daily ou @hourly au début d`une ligne, suivi d`une commande. Prévue comme celui-ci, les tâches se déroulera en première instance possible, donc @weekly courraient à minuit le premier jour de la semaine. Si vous souhaitez exécuter une tâche immédiatement lorsque le système (re) démarre, utilisez la commande @reboot.

linux-Cron-emploi-crontab-exemple

Dans cet exemple, nous avons prévu une sauvegarde tous les jours à 08h20 et 20h20. Les changements de fond d`écran automatiquement tous les trois jours à 19h00, et un script vérifier les nouveaux podcasts tous les lundis à 10h20 et 20h20. Un rappel d`anniversaire est fixée au 25 Mars et toutes les 30 minutes dans le délai déterminé. Enfin, un script vérifie courriel toutes les 15 minutes de 8 à 20, mais seulement les jours ouvrables. Vous êtes libre d`organiser votre crontab avec des espaces et des onglets entre les colonnes, mais pas dans les (ne mettez pas d`espace entre les virgules, les traits d`union et les barres obliques).Gérer vos podcasts sur Linux avec ces 10 AppsGérer vos podcasts sur Linux avec ces 10 AppsLinux ne dispose pas d`un grand choix de clients de podcast, mais ne vous inquiétez pas - presque tous les lecteur de musique moderne pour Linux peut servir podcatcher. Jetons un regard sur les options.Lire la suite

Si tout cela semble trop compliqué, ne vous inquiétez pas - vous pouvez toujours compter sur Internet. Des outils tels que Crontab Générateur, Crontab.guru et Corntab vous aider à créer des emplois cron sans connaître la syntaxe crontab. Ils vous montrent quand le travail sera exécuté suivant, et fournir des modèles d`expressions couramment utilisés. Crontab.guru est le meilleur du lot, car il vous permet de syntaxe crontab live-test, afin que vous puissiez voir immédiatement comment vos modifications auront une incidence sur le calendrier.

linux-Cron-emploi-crontab-gourou

Comment vérifier si l`emploi Cron sont exécutés

Cron est censé fonctionner tranquillement en arrière-plan et vous permettent de travailler en toute quiétude pendant qu`il prend soin de vos tâches. Mais comment pouvez-vous assurer qu`il fonctionne réellement?

Cron a une notification par e-mail en fonction intégrée, mais cela nécessite la mise en place d`au moins un simple serveur de courrier local. Pas beaucoup d`utilisateurs à domicile sont prêts à le configurer, et pas beaucoup de distributions fournissent par défaut (par exemple, Ubuntu ne fonctionne pas). Le meilleur moyen de vérifier sur Cron est de scanner le journal du système avec cette commande:Comment fonctionne un serveur de messagerie? [Technologie Explained]Comment fonctionne un serveur de messagerie? [Technologie Explained]Derrière chaque e-mail est un moteur puissant appelé le serveur de messagerie qui pousse les e-mails via Internet.Lire la suite

cat / var / log / syslog | grep -i Cron

linux-Cron-emploi-log

L`option -i rend notre insensible à la casse requête. Il est possible que Cron aura son propre fichier journal quelque part dans / Var / log /, alors regardez là-bas si cette commande ne parvient pas à produire des résultats utiles.

Si vous devez enregistrer la sortie d`une tâche cron particulier, vous pouvez rediriger vers un fichier. Indiquez le chemin et le nom du fichier dans la dernière colonne de votre crontab, après la commande que vous souhaitez exécuter:

30 * * * * / usr / bin / yourcommand gt; /home/username/logfile.txt

L`utilisation d`un seul gt; symbole remplace le fichier chaque fois que le exécution de la commande. Pour éviter cela, utilisez gt; gt; au lieu - il ajoute la sortie au fichier existant.

Et si Cron ne fonctionne pas?

Il peut arriver que vous avez ajouté des tâches, a vérifié les journaux du système, et a constaté qu`ils ne sont pas comme elles le devraient. Voici quelques choses que vous devriez prendre en considération - et faire attention à - en essayant de résoudre le problème.

le service Cron est en cours d`exécution?

Comme vous le savez, le démon cron doit être en cours d`exécution en arrière-plan. Assurez-vous que cela est vraiment le cas. Le service est soit appelé crond ou juste Cron.

Video: Linux : Scheduling Tasks with Cron darija

Pour les distributions utilisant systemd:

Cron d`état systemctl

Pour les distributions utilisant Upstart:

état cron de service

linux-Cron-emploi-service statut

Si votre distribution utilise l`approche init System V « ancienne », la liste de tous les services avec:

liste initctl

et voir si Cron est répertorié.

Êtes-vous même permis d`avoir un fichier crontab?

Vérifier votre /etc dossier pour les fichiers nommés cron.allow et cron.deny. Sur Ubuntu, devrait exister non plus, ce qui signifie que tous les utilisateurs sont autorisés à gérer les tâches cron. Toutefois, en cas de cron.allow fichier, il doit contenir votre nom d`utilisateur. A l`inverse, si le cron.deny le fichier existe, votre nom d`utilisateur ne doit pas être en elle. Quittant le cron.deny fichier vierge signifie que seul root et les utilisateurs répertoriés dans cron.allow peut avoir des fichiers crontab.

Vos variables définies correctement?

Crontab définit automatiquement votre variable SHELL / Bin / sh. Toutefois, si votre coquille de choix est le poisson ou bash, vous devez changer la variable SHELL. De même, la variable PATH ne contient que quelques répertoires par défaut. C`est là crontab recherche les commandes Linux. Si votre tâche cron ne parvient pas à courir, il pourrait être parce que crontab ne « voit » la commande que vous avez utilisé. Pour éviter cela, ajouter des répertoires contenant les commandes à la variable PATH, séparés par des virgules:

PATH = / opt / myapp / bin: / usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin
7 raisons pour lesquelles vous devez installer le poisson Shell7 raisons pour lesquelles vous devez installer le poisson ShellNe pas comme comment fonctionne votre terminal Linux? Pourquoi ne pas installer un nouveau shell? Une telle coquille est le poisson, ce qui présente des caractéristiques qui devraient sont devenus monnaie courante, mais non. Nous allons jeter un coup d`oeil.Lire la suite

Si vous ne voulez pas modifier dans votre crontab, vous pouvez définir ces variables dans le script que vous voulez exécuter comme une tâche cron.

Votre crontab formatage sur le point?

syntaxe crontab est pas exactement la voile en douceur. Même si vous vérifiez avec des outils en ligne mentionnés précédemment, une erreur mineure pourrait encore empêcher Cron d`exécuter vos travaux. Veillez à:

  • ajouter une ligne vide à la fin du fichier crontab
  • échapper le signe% avec une barre oblique inverse si votre commande comprend ce
  • écrire des commentaires sous forme de lignes séparées commençant par #. Ne pas écrire des commentaires sur la même ligne que les variables d`environnement, ou à côté de commandes cron d`emploi.

Avez-vous vraiment utiliser le terminal?

Absolument pas. les utilisateurs de KDE peuvent planifier des tâches cron avec KCron, qui est accessible à partir de la Les paramètres du système gt; Planificateur de tâches module. Avec une interface simple qui vous permet de choisir et de peaufiner tout en quelques clics de souris, KCron est un plaisir à utiliser.

linux-Cron-emploi-kcron

Si vous préférez GNOME, puis Planfication GNOME est pour vous. L`approche est similaire, bien que l`interface est, expectedly, légèrement différent. Il offre un mode avancé pour les modifications à grains fins, et est livré avec un applet de panneau à partir duquel vous pouvez gérer les tâches directement.

Emplois-Cron-linux-gnome-programme

Vous devriez être au courant d`autres solutions, comme Crontab-UI et Minicron. Ils sont plus appropriés pour les utilisateurs qui gèrent plusieurs machines et tâches cron, et l`un de leurs plus cool est l`interface Web.

linux-Cron-emploi-crontabui

Y at-il Cron Alternatives?

Alors que Cron est à peu près la norme planificateur de tâches pour Linux, il est certainement pas le seul. La commande à est parfait pour rapide, des emplois uniques qui peuvent être programmées dès la ligne de commande, sans fichiers de configuration spéciaux. Si vous avez besoin de plus, il y a GNUbatch, qui introduit la notion de dépendance. Avec GNUbatch, vous pouvez définir des conditions spécifiques pour chaque emploi, ou faire une tâche planifiée dépend d`un précédent. peut être réalisé quelque chose de similaire avec des minuteries systemd. Bien que moins pratique à configurer que Cron, minuteries systemd peuvent se rappeler si une tâche a manqué son programme pendant que l`ordinateur était éteint, et exécuter la prochaine fois qu`il est sur.Programme & Automatiser les tâches Dans Linux avec Gnome ScheduleProgramme & Automatiser les tâches Dans Linux avec Gnome ScheduleLire la suite

Ceci est quelque chose qui ne peut pas faire Cron seul. En tant que tel, il est approprié pour les serveurs et les ordinateurs qui exécutent en permanence, mais il ne sera pas exécuter une tâche qui était prévue alors que l`ordinateur était éteint. C`est là anacron entre en jeu. Il est techniquement une « alternative » ou un remplacement Cron. , Anacron complète au lieu Cron et doit être utilisé à côté, ce qui est le cas sur de nombreuses distributions Linux, y compris Ubuntu et produits à base de Ubuntu. journaux Anacron lorsqu`une tâche a été la dernière exécution, et vérifie s`il y en avait manqué des cas alors que le système a été mis hors tension. Il les exécuter lorsque vous mettez l`ordinateur sous tension, mais chaque tâche peut être exécutée une seule fois par jour.

Certaines versions de Cron, comme fcron, offrent des fonctionnalités de Anacron par défaut. Les utilisateurs avancés peuvent vouloir regarder Hcron ou SuperCron, qui apportent de nombreuses améliorations aux fonctions de base Cron, mais sont aussi un peu difficile à gérer.

Et vous? Comment organisez-vous vos tâches numériques? Quelles sont les tâches de planifier vous sur Linux? Partagez vos histoires et des conseils pour l`utilisation de Cron dans les commentaires.

Articles connexes