Le "cron»Daemon est une application Linux intégrée que les utilisateurs de Linux utilisent pour planifier l'exécution des processus. Cron recherche le «tables cron" ou "crontab"Pour les fichiers et scripts particuliers. Le fichier crontab fournit un ensemble de commandes que vous pouvez exécuter régulièrement. Il fournit également les noms des commandes utilisées pour gérer la liste de commandes. Crontab Utilise également le planificateur Cronjob pour effectuer des opérations. Selon un ensemble d'instructions, Cron est une fonction système qui fera ou exécutera des processus pour vous. Crontab est le nom du calendrier, ainsi que l'utilité qui est utilisée pour ces modifications.
Dans cet article, nous couvrirons les points suivants liés à Crontab:
Alors dirigeons-nous vers ce voyage!
Histoire:
Lorsque le système d'exploitation a permis le mode multi-utilisateurs pour ses utilisateurs, le service du système CRON a été appelé à partir de «/ etc / rc". Son algorithme se compose des étapes suivantes:
Cette version de cron était fiable et simple, mais il a utilisé des ressources, qu'il ait travail. Au cours d'une expérience de la fin des années 1970 à l'Université Purdue, il a été découvert qu'un Vax partagé dans le temps s'étendant Service de Cron Pour les 100 utilisateurs ont exprimé trop de pression sur le système.
Cron Modern Versions:
New Cons est apparu avec l'introduction du projet Linux et GNU. Le "Vixie Cron», Créé par Paul Vixie en 1987, est le cron le plus courant là-bas. Le Vixie Cron La version 3 a été introduite au dernier trimestre de 1993. En janvier 2004, ISC Cron a été renommé version 4.1. La plupart des distributions BSD et Linux utilisent la version 3, qui a quelques corrections de bugs mineurs. En 2007, Red Hat a séparé Vixie-Cron 4.1, et Anacron 2.3 a été ajouté en 2009. Anacron et Dcron sont deux autres implémentations importantes. Anacron n'est pas un programme Cron autonome. Il doit être appelé par un autre cronjob. Matt Dillon, le fondateur de Dragonfly BSD, a créé Dcron et Jim Pryor a repris son entretien en 2010.
Dale Mellor a créé Mcron, une version Cron basée sur une ruse compatible avec Vixie Cron, en 2003. Il permet également une plus grande flexibilité en incluant tout code de schéma dans les descriptions des tâches et les calculs de planification. McRon est installé par défaut sous la gestion du package Guix. Il garantit également que les colis requis sont installés et que les crontabs pertinents se réfèrent correctement à eux. Lorsque les implémentations CRON ne sont pas accessibles dans un environnement d'hébergement Web, une solution WebCron définit les tâches annulaires pour exécuter régulièrement.
Qu'est-ce qu'un cronjob?
Cron est un outil qui vous permet de planifier des tâches pour une exécution ultérieure. Vous souhaiterez peut-être utiliser une autre commande si vous souhaitez planifier un emploi unique pour une date ultérieure. En même temps, Cron est idéal pour les tâches récurrentes.
Vous connaissez peut-être les processus d'arrière-plan dans Windows, tels que les services. Cron est un démon qui remplit ses fonctionnalités en exécutant les tâches en arrière-plan. Dans un état d'inactivité, le démon attend pour accomplir une tâche à partir du système de travail ou d'un autre système basé sur Linux dans le réseau. En parlant de la structure du fichier cron, nous avons un fichier cron, un fichier texte simple qui comprend des commandes qui seront exécutées à l'heure planifiée. Le "/ etc / crontab«Est le fichier Crontab système par défaut, qui existe dans le répertoire Crontab suivant:«/ etc / cron.* /". Les administrateurs système peuvent modifier le fichier System Crontab.
Les systèmes d'exploitation basés sur Linux prennent en charge de nombreux utilisateurs. Chacun d'eux peut créer leur fichier Crontab et ajouter des commandes pour exécuter des tâches chaque fois qu'ils le souhaitent. Un démon cron vérifiera le fichier crontab, puis effectuera le travail en arrière-plan. Vous pouvez également utiliser des cronjobs pour créer des sauvegardes, une surveillance des espaces disques et pour l'automatisation de la maintenance du système. Les tâches cron sont idéales pour une machine qui exécute sept jours par semaine, 24 heures par jour. Alors que les administrateurs système utilisent principalement des tâches CRON, ils peuvent également être extrêmement précieux pour les développeurs Web.
Pourquoi utiliser Cronjob?
Éléments croisés:
La majorité des cronjobs ont trois parties:
La plupart des programmes qui ont besoin d'utiliser un cronjob fourniront des instructions détaillées sur la façon de le configurer.
Le fichier crontab:
Une ligne de fichiers crontab est «inactive» ou «active». Une ligne «active» est une entrée de commande CRON ou un paramètre d'environnement. Toute ligne qui est ignorée, y compris les commentaires, est considérée comme «inactive». Les onglets, les espaces principaux et les lignes vierges ne sont pas pris en compte. Les lignes avec le signe «#» comme premier personnage non espace sont lues comme des commentaires et ignorées. Dans les paramètres de variables d'environnement ou les commandes CRON, les commandes ne sont pas autorisées à exister sur les mêmes lignes car si vous faites cela, les commentaires font partie de la commande CRON.
Contab Working:
Les crontabs peuvent être trouvés dans le répertoire local, comme dans «/ var / spool" ou "/ var / spool / cron / crontabs», Qui est son sous-répertoire. Même s'ils sont présents dans l'un de ces emplacements, utilisez la commande Crontab pour accomplir la tâche de les modifier. Nous déterminerons quels composants sont nécessaires avant de pouvoir vous attendre aux résultats souhaités des actions Crontab. L'entrée dans le crontab doit être présente dans la première commande. Les cinq paramètres indiquent leur temps d'exécution et s'il doit être exécuté ou non. Le crontab peut être modifié en entrant en mode Edit avec la commande "crontab -e". Une fois que vous avez donné du temps comme entrée, le crontab est prêt à fonctionner à l'heure spécifiée.
Le démon cron aide à effectuer les vérifications nécessaires afin que la commande crontab puisse être exécutée à cette instance. Chaque minute, le démon crontab vérifie le crontab. En conséquence, ce crontab contient des informations jusqu'à la minute. Une fois le chèque effectué, la commande associée est exécutée avec les champs du crontab correspondant à l'heure actuelle.
Des situations telles que les «heures manquantes» pendant les épargnes de la lumière du jour doivent être évitées car la commande peut même ne pas s'exécuter une fois. D'un autre côté, si le temps se produit plus d'une fois, la commande peut même exécuter deux fois. Un autre exemple est qu'un trait d'union «-» peut effectuer le cronjob plusieurs fois tout au long de la journée. Par exemple, si quelqu'un souhaite effectuer un cronjob aux 10e et 11e heure de la journée, la commande 10-11 peut être utilisée. Un autre aspect essentiel de l'exécution des cronjobs est les paramètres pour permettre aux emplois de s'exécuter. Permettre ou refuser à un utilisateur d'effectuer des cronjobs peut être accompli en apportant des changements dans le cron.Autoriser ou cron.refuser les fichiers.
Utilisation de Crontab:
Linux System Pack a inclus «Crontab» pour la planification des travaux. En conséquence, l'exécution d'un script en tant que racine rend les mises à jour du système plus faciles à maintenir. C'est aussi simple que de changer le cronjob et, après cela, attendez le processus de redémarrage.
Syntaxe du crontab:
La syntaxe du crontab comprend six champs dans lesquels les cinq premiers champs sont liés à la date et à l'heure d'exécution. Chaque champ d'un fichier crontab existe dans l'ordre suivant:
Minute (s) heure (s) jour (s) mois (s) en semaine Commande (s) en semaine
Découvrez la syntaxe suivante de la commande Crontab:
***** / pathtoscript
Caractères spéciaux dans l'expression:
Cron Special Strings
Le démon cron a quelques raccourcis qui facilitent les définitions de travail.
Ces mots ont une signification précise, et vous pouvez les utiliser dans la syntaxe au lieu de la spécification de date de 5 colonnes. Voici quelques-uns des raccourcis de Cron:
@hourly: C'est la même chose que "0 * * * *»Et exécute la commande au début de chaque heure.
@quotidien: C'est la même chose que "0 0 * * *»Et exécute la commande une fois par jour, à 12 A.m. (minuit).
@hebdomadaire: C'est la même chose que "0 0 * * 0"Et exécute la commande chaque semaine dimanche à minuit.
@mensuel: C'est la même chose que "0 0 1 * *»Et exécute la commande à 12 A.m. (minuit) Chaque mois du premier jour.
@annuel: C'est la même chose que "0 0 1 1 *»Et exécute la commande une fois par an le 1er janvier à minuit.
@reboot: Chaque fois que le système est redémarré, cette commande sera exécutée.
Variable d'environnement:
Lorsque Cron gère un travail, un environnement établissant une ligne dans le crontab peut définir des variables d'environnement.
Dans le Crontab, un paramètre d'environnement peut être ajouté comme:
nom = valeur
Les espaces sont facultatifs autour "valeur". En outre, il y a la chaîne en citations pour maintenir les blancs de fuite ou de leader.
Cron définit automatiquement certaines variables d'environnement:
Variables crontab:
Certaines des variables CRON les plus utilisées sont répertoriées ci-dessous:
Options de commande Crontab:
Installation de Cron sur Centos:
Par défaut, Cron est inclus dans les centos 8. Pour une raison quelconque, si vous ne l'avez pas déjà, installez-le sur votre système:
$ sudo dnf installer cron
$ sudo systemctl activer --now grond.service
$ sudo systemctl Status Cond
Contab Scheduler: à l'échelle du système
Régulièrement, la plupart des services utilisent Crontab. Les services utilisent leurs paramètres de Crontab Scheduler directement au «/ etc / cron.d»Répertoire. Après cela, le planificateur exécutera automatiquement les fichiers présents dans ce répertoire. Voici les dossiers préconfigurés de Crontab: «/ Etc / cron.heures »,« / etc / cron.tous les jours »,« / etc / cron.hebdomadaire »et« / etc / cron.mensuel". Les administrateurs Linux ont un contrôle total sur ces répertoires. Dans le même temps, le planificateur traverse et exécute régulièrement ces fichiers Crontab. De plus, si les utilisateurs de racines veulent exécuter quelque chose, par exemple, il veut exécuter un script particulier tous les jours, il placera le fichier à l'intérieur du "/ etc / cron.quotidien»Répertoire.
Cron Access:
Vous pouvez attribuer un contrôle sur l'exécution de tout fichier en utilisant cron. Évaluez cette fonctionnalité en utilisant les fichiers suivants:
/ etc / cron.permettre: Autoriser
/ etc / cron.refuser: Nier
Choses à garder à l'esprit:
Gestion de Crontab:
Comme nous l'avons déjà discuté, il s'agit d'un fichier particulier contenant le calendrier des emplois exécuté par Cron. D'un autre côté, ces emplois ne sont pas censés être édités directement. La commande crontab est recommandée à cet effet. La commande crontab vous permet de modifier le crontab lié à votre profil utilisateur sans avoir besoin de modifier vos privilèges. Cette commande vous informera également des erreurs présentes dans le crontab, qui ne serait pas possible si elle serait modifiée directement. Utilisez la commande suivante pour modifier votre crontab:
$ crontab -e
Sur les systèmes Linux, "/ etc / répertoire»Contient un autre fichier crontab. Sous l'emplacement mentionné, un crontab à l'échelle du système existe qui comprend un champ qui spécifie les privilèges d'un profil utilisateur pour exécuter des cronjobs. Utilisez la commande suivante pour modifier le crontab à l'échelle du système:
$ sudo nano / etc / crontab
L'autre méthode plus facile pour accéder et modifier le fichier Crontab est l'utilisation du «nano" éditeur. Faire "nano«Votre éditeur par défaut en suivant ces étapes:
$ nano ~ /.bash_profile
Ajoutez la ligne suivante au début du fichier ouvert:
exportation visuel = "nano"
Enregistrez la ligne ajoutée dans le " ~ /.bash_profile»Et soyez. Après cela, recharger le «~ /.bash_profile" déposer.
$ . ~ /.bash_profile
Maintenant, écrivez cette commande pour ajouter des cronjobs:
$ crontab -e
Ceci est le fichier crontab, où nous sauverons tous nos cronjobs:
Pour afficher le contenu du fichier Crontab, utilisez la commande suivante:
$ crontab -l
Note: Actuellement, nous n'avons ajouté aucun cronjob dans le fichier crontab pour imprimer quoi que ce soit.
Pour supprimer les cronjob prévus dans le fichier crontab, rédigez cette commande:
$ crontab -r
14 exemples de cronjob:
Exemple 1: exécution de Cronjob après toutes les 50 minutes
La commande crontab suivante exécutera le «Mise à jourB«Après toutes les 50 minutes:
50 * * * * UpdatedB
Exemple 2: Exécution de Cronjob sur l'heure et les mois spécifiés
Exemple de crontab à exécuter / usr / local / bin / testscript.shot à 8h00 p.m. Le 20 janvier, février, mars et avril:
00 08 20 1,2,3,4 * / usr / local / bin / testscript.shot
Exemple 3: exécution de Cronjob à chaque vendredi 1 p.m.
La commande ci-dessous permettra au système exécuter le «testscript.shot"Tous les vendredis, 1 p.m.:
0 01 * * ven / scripts / testscript.shot
Exemple 4: exécution de Cronjob à chaque minute
Pour exécuter un script particulier après chaque minute, consultez la syntaxe de cette commande:
* * * * * / scripts / testscript.shot
Exemple 5: exécution de Cronjob les jours spécifiés
Vous trouverez ci-dessous un exemple qui vous aidera si vous souhaitez planifier un cronjob à exécuter les jours particuliers. Cet exemple exécutera le «testscript.shot”Lundi et mercredi à 2 p.m.:
0 02 * * lun, mer / script / testscript.shot
Exemple 6: exécution de Cronjob le premier lundi de chaque mois
Le paramètre de temps ne suffit pas pour définir cet exemple. Nous utiliserons une condition pour spécifier que le script particulier devrait être exécuté chaque mois de lundi de chaque mois:
0 2 * * lun [$ (date +% d) -le 07] && / script / testscript.shot
Exemple 7: exécution de Cronjob sur 10 secondes
Encore une fois, nous spécifierons une condition pour exécuter le cronjob sur 10 secondes:
* * * * * / scripts / script.shot
* * * * * Sleep 10; / scripts / script.shot
Exemple 8: exécution de Cronjob pour plusieurs tâches
Utiliser (;) pour configurer Cron pour exécuter plusieurs commandes de la manière suivante:
* * * * * / scripts / testscript1.sh; / scripts / testscript2.shot
Exemple 9: exécution de Cronjob au début de chaque année en utilisant «@yearly»
L'exécution d'une tâche à la première minute d'une nouvelle année est utile dans le cas où vous devez envoyer des souhaits du Nouvel An à quelqu'un."0 0 1 1 *"Est similaire à l'horodatage"@annuel«:
@yearly / scripts / testscript.shot
Exemple 10: exécution de Cronjob au début de chaque mois en utilisant «@monthly»
Vous pouvez utiliser le "@mensuel«Timestamp pour exécuter les tâches mensuelles telles que la facturation des clients et le paiement des factures:
@monthly / scripts / testscript.shot
Exemple 11: exécution de Cronjob au début de chaque semaine en utilisant «@weekly»
Exécutez n'importe quelle tâche au début de la semaine, comme le nettoyage du système à l'aide du «@hebdomadaire”Timestamp. "hebdomadaire" est équivalent à "0 0 * *»:
@weekly / bin / testscript.shot
Exemple 12: Exécution de Cronjob au début de chaque mois en utilisant «@daily»
"@quotidien«L'horodatage est équivalent à«0 0 * * *". Il est utilisé pour exécuter les tâches basées sur les tâches:
@daily / scripts / script.shot
Exemple 13: Exécution de Cronjob au début de chaque heure en utilisant «@Hourly»
"@hourly«L'horodatage est équivalent à«0 * * * *". Vous pouvez utiliser cet horodatage pour exécuter des tâches horaires:
@Hourly / Scripts / TestScript.shot
Exemple 14: exécution de Cronjob pour le redémarrage du système
"@reboot"Est pratique pour les actions que vous souhaitez exécuter chaque fois que le système bottait. Il est utile pour lancer automatiquement des tâches en arrière-plan. Ce type de cronjob est utilisé pour planifier les scripts de démarrage.
@reboot / scripts / testscript.shot
Création de Cronjob pour un utilisateur spécifique
Pour planifier un cronjob pour un utilisateur particulier, spécifiez son nom de la manière suivante:
***** nom d'utilisateur / path_to_script
Maintenant, vérifions un exemple rapide:
50 * * * * Linuxhint UpdatedB
Cette commande exécutera le «Mise à jourB"Après toutes les 50 minutes pour le"linuxhint" utilisateur.
Énumérer les cronjobs:
Utilisez cette commande pour répertorier les cronjob planifiés sur votre système:
$ crontab -l
Création de sauvegarde Cronjobs:
Pour créer une sauvegarde des cronjob planifiés, utilisez cette commande:
$ crontab -l> cron-backup.SMS
Vérifiez le contenu du «cron-backup.SMS«Pour vous assurer que les cronjobs sont en sauvegarde ou non:
$ chat cron-backup.SMS
Retirez les cronjobs:
Méthode 1: sans invite
Le "crontab -r»La commande est utilisée pour supprimer les cronjobs:
$ Crontab -r
Méthode 2: avec invite
L'exécution de la commande suivante vous montrera une invite avant de supprimer le crontab:
$ crontab -i -r
Gestion de la sortie de Cronjob:
Comme nous l'avons mentionné dans l'introduction de Cronjob, ces emplois opèrent en arrière-plan. C'est la raison pour laquelle il n'est pas toujours évident s'ils ont accompli la tâche avec succès ou non. À ce stade, vous avez une certaine compréhension liée à la planification Cronjob et à son utilisation. Maintenant, vous pouvez expérimenter diverses façons de redirection de la sortie des cronjobs. Cette redirection vous aidera à suivre la fonctionnalité des cronjobs.
Par exemple, vous pouvez envoyer la sortie de Cronjobs à l'adresse e-mail associée à votre profil utilisateur Linux si vous avez un agent de transfert de messagerie installé et configuré sur votre serveur, tel que «Envoyer un mail". En comparaison, un «Courrier«Le réglage en haut du crontab peut également être utilisé pour fournir des adresses e-mail manuellement. Ajoutez les lignes suivantes à votre fichier Crontab, dans lequel nous avons un «Courrier»Déclaration suivie de mon adresse e-mail, une directive domestique faisant référence au répertoire où le binaire cron doit être trouvé, une seule tâche cron et un COQUILLE directive indiquant le shell à fonctionner qui est bash dans notre cas.
Mailto = "sharqafatima789 @ gmail.com "
Shell = / bin / bash
Accueil = /
50 * * * * Linuxhint UpdatedB
* * * * * echo 'exécuter cette commande toutes les 50 minutes'
Cette tâche renverra le message "Exécutez cette commande toutes les 50 minutes". La sortie sera envoyée par e-mail à l'adresse e-mail spécifiée présente dans le «Courrier»Directive. Pour éviter de recevoir un e-mail avec le résultat, vous pouvez rediriger la sortie de la tâche Cron vers un emplacement vide ou un fichier journal.
Pour l'envoi de la sortie d'une commande planifiée dans un fichier journal: Ajouter >> à la fin de la commande, avec le nom et le chemin du répertoire contenant le fichier journal, comme indiqué ci-dessous:
* * * * * echo 'Exécuter cette commande toutes les 50 minutes' >> / répertoire / path / fichier.enregistrer
Nous avons créé un exemple de fichier journal à cet effet, nous rédigerons donc cette commande comme suit:
* * * * * Echo 'Exécuter cette commande toutes les 50 minutes' >> / TestFile / SampleFile.enregistrer
Cronjob Limites:
Serveur dédié et VPS: Dans ce cas, il n'existe aucune restriction à temps pour l'exécution de Cronjob.
Partagé et revendeur: Un cronjob peut ne pas être exécuté plus d'une fois toutes les 15 minutes.
Gestion des erreurs de cronjob:
Méthode 1: Utilisation / dev / null
Au lieu de recevoir une alerte par e-mail, vous pouvez facilement envoyer nos erreurs de cronjob et un journal à Dev / NULL. Tout ce que nous envoyons ou écrivons à dev / null est jeté.
* * * * * cd / home / linuxhint && / bin / bash shell-testscript.sh> / dev / null 2> & 1
Méthode 2: Envoi de sortie dans un fichier particulier
C'est une méthode populaire, et la plupart des utilisateurs préfèrent cette méthode. Dans cette méthode, vous devez créer un fichier pour enregistrer les journaux Cronjob. Si le travail est terminé avec succès, il imprimera la sortie; Sinon, il imprimera une erreur.
Nous avons créé un exemple de fichier journal à cet effet, nous rédigerons donc cette commande comme suit:
* * * * * cd / home / linuxhint && / bin / bash shell-testscript.sh >> échantillon.enregistrer
Ici:
Générateurs de syntaxe pour crontab:
D'après la démonstration de l'exemple, vous pouvez déterminer à quel point il est facile de planifier un cronjob. Parfois, vous ne pouvez pas mémoriser une syntaxe Cronjob particulière. Pour rendre le travail encore plus gérable, peu de générateurs de syntaxe sur le Web pour cron sont là pour vous. Maintenant, nous allons parler de quelques sites Web qui génèrent des expressions crontab. Ces expressions sont basées sur vos entrées. Copiez / collez simplement la ligne dans le fichier crontab de votre système après avoir généré l'expression de Crontab en fonction de votre exigence.
Générateur Crontab:
Crontab Generator est un outil Web qui vous permet de créer des expressions Crontab plus rapidement et sans effort. Ce site Web comprend un formulaire avec plusieurs entrées.
L'utilisateur doit remplir tous les champs essentiels dans les formulaires. Dans les champs, vous pouvez sélectionner la valeur de la commande de syntaxe selon vos besoins:
Ensuite, cet outil de générateur Crontab émettra une commande dans la section mise en évidence suivante. Copiez la commande générée, collez-la dans votre fichier crontab et vous avez terminé!
Crontab Guru:
Ce site Web est personnalisé pour fournir des exemples d'échantillons de cronjobs. Il vous suffit de saisir vos informations sur le site Web, et cela générera une syntaxe de Crontab dans quelques minutes.
Cronmaker:
Il s'agit d'un autre site Web qui est également construit dans le but de générer une syntaxe de commande Cronjob:
Fronts graphiques pour Crontab:
Certains utilitaires frontaux Crontab sont disponibles pour créer des tâches CRON à l'aide d'une interface utilisateur graphique. Pour gérer ou ajouter des tâches CRON, il n'est pas nécessaire de mettre à jour le fichier Crontab à partir de la ligne de commande. Ces outils feront de la gestion des cronjobs un jeu d'enfant!
Zeit:
Zeit est une application gratuite créée dans le langage informatique C ++. Selon la licence GPLV3, le code source de cette application est accessible sur GitHub. C'est une base de QT "crontab" et "à»Commande frontal. Nous pouvons utiliser Zeit pour les tâches suivantes:
Crontab UI:
Crontab UI est une solution Web pour gérer les cronjobs en Linux avec facilité et sécurité. Vous n'avez pas à modifier le fichier Crontab manuellement pour créer, supprimer et gérer les tâches CRON. En quelques clics de souris, vous pouvez tout faire dans ce navigateur Web. Crontab UI rend simple à créer, modifier, arrêter, supprimer et sauvegarder les tâches cron. Il joue également son rôle dans l'importation, l'exportation et le déploiement des cronjobs vers d'autres machines.
Conclusion:
Cron est un outil polyvalent et puissant qui peut vous aider avec une variété de tâches d'administration du système. Vous pouvez automatiser les opérations qui sont habituellement compliquées avec des scripts de coquille. Cet article comprend un guide complet de Crontab pour les débutants, qui a discuté de tout, y compris le travail de crontab, son utilisation, son installation sur Centos, des exemples de cronjobs pratiques et des générateurs de syntaxe Crontab.