Exemples de crontab. Utilisation du planificateur de cron sous Linux. Liste des commandes pour contrôler crontab

Dans le système Linux Le lancement automatique des tâches est effectué par le démon Crond et non seulement l'administrateur système peut être programmé pour exécuter automatiquement des tâches, mais également des utilisateurs.

Comment fonctionne des travaux crondes

Le principe de travail de la crond démon est simple. Après avoir commencé (en règle générale, lors du chargement du système), le démon se réveille chaque minute et vérifie si le lancement est planifié à ce moment de tous les programmes. Si de tels programmes sont situés, le démon les lance et envoie un e-mail aux utilisateurs qui prévoyait le lancement.

Établir le calendrier de la tâche

Création d'un calendrier - la tâche est simple. L'horaire est affiché dans un fichier Cronta distinct. Dans chaque ligne du fichier, la tâche est placée qui doit être lancée à un moment donné.

Format d'entrée de fichier de crontab

Une partie de la date limite (date-date) comprend cinq champs numériques séparés par des espaces et définissant le temps de lancement de la tâche:

Pour la commodité de remplir les champs spécifiés, les règles suivantes ont été saisies:

  • Vous pouvez spécifier des valeurs sous forme d'intervalles numériques. Par exemple, l'intervalle 1-3 dans le domaine de l'horloge signifie 1,00, 2,00 et 3,00 dans la passion, 2-4 au jour de la semaine - mardi, mercredi ou jeudi.
  • Les intervalles peuvent être définis avec une étape plus d'unités. Par exemple, pour spécifier toutes les seconde heures, à partir de minuit, l'intervalle 0-23 doit être installé par incréments de 2 traitements obliques: 0-23 / 2
  • Un astérisque (*) indique la gamme complète de valeurs de champ - du minimum au maximum. Par exemple, au mois de la journée du mois, un astérisque signifie l'intervalle de 0 à 31, le jour de la semaine - 0-7
  • Le jour de la semaine ou du mois peut être spécifié par les trois premières lettres de son nom (anglais)

Exemples de date

Plusieurs exemples de temps de remplissage de temps:

0 1 * * * Tâche en cours d'exécution quotidiennement à 1,00 poppardties 30 14 * * 0 Run à la tâche le dimanche 23-7 / 2.8 * * * * * * Lancement de la tâche toutes les 2 heures de 23,00 à 7,00 et à 8h00 0 12 * 1 Mon exécutant une tâche à midi tous les lundi de janvier de chaque année 0 12 2 févr. * Tâche de lancement à midi le deuxième février de chaque année

Champ de commande

Le champ de commande est séparé des champs d'heure dans un ou plusieurs espaces et s'étend jusqu'à la fin de la ligne. Les commandes sont traitées par la coque / bin / sh.

Par exemple, l'entrée suivante dans le fichier Crontab prévoit un lancement quotidien du programme / USR / SBIN / Sauvegarde dans 1,00 PoppARTES:

0 1 * * / usr / sbin / sauvegarde

Certaines commandes (par exemple, mail) nécessitent des informations à partir du périphérique d'entrée standard. Ceci est indiqué par le signe pourcentage (%). Le premier signe de ce type indique le début de l'entrée standard, chaque ligne ultérieure - remplacez la ligne.

Modification du fichier de crontab

Le fichier crontab est édité par la commande CRONTAB -E. Deux approches sont possibles:

  • création d'un nouveau fichier avec tous les enregistrements qui doivent être inclus dans le fichier CRONTAB, avec son enregistrement ultérieur sur le disque sous cette commande CRONTAB;
  • Édition directe du fichier crontab -e.

Enregistrement à partir de fichier

Pour enregistrer le contenu du fichier Croneb à partir d'un autre fichier, vous devez créer cet autre fichier (dans l'éditeur de texte habituel) avec tous les enregistrements à partir duquel le fichier Crontab devrait être. Ce peut être, par exemple, la prochaine entrée:

0 1 * * / usr / sbin / sauvegarde

Le fichier créé doit être attribué un nom approprié, par exemple, des travaux de cron. Une fois le fichier spécifié créé, son contenu doit être écrit dans le fichier CronTab:

~ $ crontab cronjobs

Le contenu du fichier Cronjobs remplacera complètement le contenu du fichier Croneb de cet utilisateur. Utilisation de cette méthode, tout utilisateur peut modifier votre fichier crontab. Le superutilisateur a un droit spécial de modifier les fichiers de crontab d'autres utilisateurs. Modification du fichier de quelqu'un d'autre est indiqué par le drapeau -u. Par exemple, par équipe:

~ # crontab -u oleg cronjobs

le fichier Cronjobs est écrit comme le fichier oleg Cronb.

Modification directe du fichier crontab

La commande crontab évite une opération à plusieurs étages avec la création d'un fichier séparé. Si vous entrez la commande CRONTAB avec l'option, vous pouvez modifier directement le fichier crontab.

Par défaut, la commande crontab avec l'option est le fichier CronTab est chargé dans l'éditeur. Éditeur Vi - puissant, bien qu'un outil complexe, populaire parmi les utilisateurs expérimentés Unix. Celui qui préfère un autre éditeur par exemple Xedit.peut établir la valeur correspondante de l'éditeur variable d'environnement:

~ Éditeur d'exportation \u003d xedit

Après cette entrée de commande

détermine le fichier crontab dans l'éditeur spécifié.

Tout comme l'utilisateur habituel peut modifier son propre fichier Croneb, le superutilisateur peut modifier les fichiers CronTab d'autres utilisateurs. Pour ce faire, utilisez la commande:

~ # crontab -u nom-nom -e -e

Voir le fichier crontab

Pour afficher le contenu du fichier Croneb, une commande est entrée:

Super USser peut voir les fichiers de crontab d'autres utilisateurs:

~ # crontab -u nom d'utilisateur -l

Supprimer le fichier crontab

Pour supprimer le contenu de votre fichier crontab, l'utilisateur entre dans la commande:

Super utilisateur peut supprimer les fichiers CronTab d'autres utilisateurs.

Dans nos matériaux dédiés au serveur Ubuntu, il est question d'effectuer toutes les tâches de temps à autre. Afin de ne pas expliquer la même chose à chaque fois, nous avons décidé de créer ce matériel, qui devrait aider les administrateurs système à maîtriser et à utiliser efficacement le planificateur de tâches de Linux.

Ubuntu Server est utilisé comme planificateur de tâches cron. - Planificateur avec interface de ligne de commande. C'est une partie importante du système et commence à fonctionner immédiatement après l'installation, effectuant diverses tâches système. Notre objectif est de le livrer au service, d'autant plus que ce n'est pas si difficile qu'il y paraît.

Il existe deux types d'horaires. cron.: Personnalisé et systémique. Ils diffèrent par le fait que le premier est créé par les utilisateurs et est exécuté en tenant compte des droits personnalisés, la seconde est utilisée à des fins administratives ou systémiques et peut être exécutée pour le compte de tout utilisateur.

Pour créer ou modifier le calendrier de l'utilisateur, tapez:

Crontab -e.

Lorsque vous démarrez d'abord, l'utilitaire proposera de choisir l'éditeur, nous vous recommandons de choisir mecdit. (Nécessite le MC installé), ou un autre éditeur avec lequel vous pouvez travailler.

Le format des lignes d'horaire a la forme:

Minute Hour Jour Mois Jour Equipe

  • Minute- Temps en minutes de 0 à 59
  • Heure- de 0 à 23
  • Jour- Jour de mois de 1 à 31
  • Mois- de 1 à 12 ou des désignations alphabétiques Jan - déc.
  • Jour de la semaine - de 0 à 6 (0 - dimanche) ou assis - soleil
  • Équipe - une chaîne dans le format de l'interprète de commande qui sera exécutée, le type est autorisé. team1 && Team2 Démarrer plusieurs équipes d'affilée.

Les valeurs des minutes, des heures, des jours peuvent être indiquées comme suit:

  • Valeur - le nombre indiquant la date ou l'heure est autorisé * Autoriser une gamme complète de valeurs
  • Valeurs multiples - Il est permis d'indiquer plusieurs valeurs à travers la virgule, par exemple 2,14,22
  • Gamme de valeurs - indiqué à travers un trait d'union, par exemple 2-10
  • Valeurs de pas - indiqué à travers la fraction, le dénominateur est défini, par exemple * / 3 - chaque troisième valeur de 0, 3, 6, 9, etc. En tant que numérateur, il doit y avoir une plage de valeurs ou un astérisque.

Considérez l'exemple suivant de l'enregistrement:

0 8-19 / 2 * * 1 / Accueil / Ivanov / Test

Cela signifie que chaque seconde heure de 8 à 19 (8, 10,12,14,16) le lundi pour lancer le script de test dans le catalogue d'accueil d'Ivanov.

Immédiatement, nous voulons vous avertir d'une erreur commune, lors de la spécification de l'exécution périodique, toutes les dates doivent être spécifiées explicitement, l'astérisque indique une gamme complète de valeurs et non leur absence. Par exemple, si vous devez exécuter un script toutes les heures de 10 à 15 aura mal:

* 10-15 * * / Accueil / Ivanov / Test

Cette chaîne lancera le script chaque minuteallant de 10 à 15 heures. Ce sera juste:

0 10-15 * * * / Accueil / Ivanov / Test

Cet enregistrement vous permettra d'exécuter le script au début de chaque heure de la plage spécifiée.

En plus de la date, vous pouvez utiliser un certain nombre de lignes spéciales:

  • @regoot.- exécuter la commande lors du redémarrage
  • @Annuel ou alors @Annuellement - effectuer le 1er janvier, enregistrement de la même manière: " 0 0 1 1 * "
  • @Mensuel. - effectuer 1 nombre de chaque mois, similaire à " 0 0 1 * * "
  • @hebdomadaire. - Effectuer tous les dimanches, c'est équivalent. " 0 0 * * 0 "
  • @Du quotidien.ou alors @minuit - tous les jours à minuit, " 0 0 * * * "
  • @Hourly. - une fois par heure " 0 * * * * "

Donc, pour que l'exécution quotidienne de notre script chaque minuit puisse être écrite:

@Midnight / Accueil / Ivanov / Test

Après avoir terminé la compilation de planification, enregistrez le fichier et quittez l'éditeur. L'horaire personnalisé sera enregistré dans / Var / spool / cron / crontabs sous le nom de l'utilisateur actuel.

Pour les tâches système et administratives fournies un fichier / etc / crontabla syntaxe des enregistrements de celui-ci est distinguée par la présence d'une valeur supplémentaire - l'utilisateur, la tâche sera lancée à partir du nom de qui:

Minute HEUMIÈRE JOUR MOISE JOUR DE L'ÉQUIPE D'UTILISATEUR DU JOUR

Un exemple d'un tel enregistrement:

0 19 * * 1-5 racine / etc / sauvegarde

Selon lequel à 19h00 du lundi au vendredi, le script sera lancé / etc / sauvegarde Au nom de l'utilisateur racine..

Ce fichier contient également des calendriers système, il convient donc de l'utiliser pour la modifier avec prudence. Tous les tâches système et administratives doivent être placées.

Comme tu peux le voir cron.il est assez facile à utiliser, mais permet en même temps de riches opportunités pour la configuration des horaires du serveur Ubuntu. Nous espérons que cet article aidera les administrateurs à maîtriser cet outil.

Dans UNIX, il est possible d'exécuter le programme de l'utilisateur dans l'heure spécifiée. Pour ce faire, le programme Cron est utilisé, qui reçoit des instructions des utilisateurs et, les suivant, effectue toutes les tâches des scénarios obtenus. Nos clients peuvent utiliser cette occasion pour effectuer des tâches périodiques.

Comment configurer Cron dans un compte personnel (pour les tarifs UNIX)

Étant donné que tous les programmes PHP ne peuvent pas fonctionner via CLI SAPI sans modification préalable, vous pouvez les exécuter à travers wget.. Par example:

USR / local / bin / wget -o / dev / null -q http: //mysite.tld/cron.php? Action \u003d 123

Si les fonctions sont utilisées dans le script exiger, inclure.De plus, des chemins relatifs sont indiqués en eux, puis au début du script exécuté, utilisez l'appel de la fonction cHDIR ()qui tâtons au répertoire de travail actuel.

Comment recevoir des messages d'erreur à partir de programmes lancés par cron

Si, lors de l'exécution d'un programme issu de cron, des erreurs ont eu lieu, vous souhaitez certainement recevoir des messages sur ces erreurs afin de contrôler pleinement le fonctionnement des tâches de démarrage périodiquement. Pour ce faire, au début du script cron, placez cette ligne:

Mailto [email protected].

Sûr, [email protected]. Vous devez remplacer l'adresse électronique réellement existante dans laquelle vous souhaitez fournir des notifications. Si vous devez recevoir des messages d'erreur à plusieurs adresses, spécifiez toutes ces adresses via la virgule.

Veuillez noter que Cronvera Cronvera par courrier ce qui est affiché par des scripts lancés. Par exemple, si vous écrivez un script imprimera la ligne "Hello, World" et mettra l'exécution à travers Cron, vous recevrez par courrier la lettre avec le bonjour, la ligne mondiale chaque fois que le cron exécutera un tel script.

Pour éviter cela, par exemple, lorsque le texte affiché par le script, vous n'avez pas besoin, vous devez ajouter à la fin de la chaîne de script pour les symboles de cron.

\u003e / dev / null 2\u003e & 1

Enfant String pour Cron ressemblera à ceci:

0 1 * * * / usr / local / bin / php -q $ home / script.php\u003e / dev / null 2\u003e & 1

Nous vous recommandons de vérifier l'exactitude de la syntaxe des scripts que vous avez définie pour exécuter via Cron. Les scripts peuvent contenir une erreur, ne peuvent pas fonctionner inégales lorsqu'ils ont commencé par un serveur Web et par le biais de cron, etc. Afin de vous assurer que le script fonctionnera correctement à travers Cron, vérifiez d'abord cela avec une telle équipe à UNIX Shell:

/ Usr / local / bin / php -l script.php

S'il n'y a pas d'erreur dans le script, vous verrez le message "Aucune erreur de syntaxe détectée dans script.php".

Restrictions

Pour les programmes qui traversent Cron, les mêmes restrictions sur les ressources consommées que pour les processus exécutés par l'utilisateur dans UNIX Shell. Nous parlons des restrictions au moment de l'exécution du programme, le nombre de mémoire disponible, des limitations à la taille des fichiers, etc.

Min Hour Dom Mon Dow CMD

Tableau: champs et gammes Croneb admissibles (syntaxe Linux crontab)

1. Planification des tâches pendant un certain temps

La base d'utilisation de cron est l'exécution de la tâche à un moment donné, comme indiqué ci-dessous. Cela exécutera le script complet de sauvegarde (sauvegarde complète) le 10 juin à 8h30.

Veuillez noter que le champ Time utilise un format 24 heures sur 24, de 8 h 8, 8 RM - 20 heures.

30 08 10 06 * / Accueil / Développeur / Sauvegarde complète

  • 30 - 30e minute
  • 08 - 08 heures
  • 10 - 10ème jour
  • * - Chaque jour de la semaine

2. Calendrier des tâches pour une exécution plus fréquente (par exemple, deux fois par jour)

Le script suivant utilise des sauvegardes supplémentaires deux fois par jour chaque jour. Dans cet exemple, une sauvegarde supplémentaire (sauvegarde incrémentielle) est effectuée à 11h00 et à 16h00 tous les jours. Les valeurs à travers la virgule dans le champ indiquent que la commande doit être effectuée à chaque heure spécifiée.

00 11,16 * * * / Accueil / Développeur / Bac / Sauvegarde incrémentielle

00 - 0 AYA MINUTE (heure de début) 11, 16 - 11 et 16 heures * - Tous les jours * - Tous les mois * - Tous les jours de la semaine

3. Calendrier des travaux pendant un certain intervalle de temps (par exemple, en semaine)

Si vous souhaitez effectuer des sous-programmes pour chaque heure à un certain intervalle de temps, utilisez ce qui suit.

Cron de sous-programme pour chaque jour pendant les heures de travail

Cet exemple vérifie l'état de la base de données (y compris les week-ends) pour les heures de travail de 9h à 18h.

00 09-18 * * / Accueil / Développeur / Bin / Check-DB Statut

00 - 0-aya minute (début d'une heure) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 13, 14, 15, 16, 17, 18 (montre) * - Chaque jour * - tous les mois * - tous les jours de la semaine

Subiltine cron pour chaque journée de travail pendant les heures de travail

Cet exemple vérifie l'état de la base de données chaque jour de travail (sauf le samedi et le dimanche) de 9h à 18h.

00 09-18 * * 1-5 / HOME / RAMESH / BIN / CHECK-DB-Statut

00 - 0-aya minute (début d'une heure) 09-18 - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 (heures) * - Tous les jours * - Tous les mois 1-5 - Lundi, mardi, mercredi, jeudi et vendredi (chaque semaine)

4. Comment afficher les archives de crontab?

Afficher les fichiers Crontab en cours de l'utilisateur.

Pour afficher vos fichiers CronTab-L des informations d'identification UNIX, procédez comme suit.

[Email protégé]$ crontab -l @Yearly / Home / Developer / Maintenance annuelle * / 10 * * * * / Accueil / Développeur / Vérification de l'espace disque

Voir l'enregistrement racine crontab

Connectez-vous en tant que racine de l'utilisateur (Su - racine) et exécutez le crontab-L comme indiqué ci-dessous.

[Email protégé]# crontab -l pas de crontab pour la racine

Pour voir d'autres fichiers d'utilisateurs, connectez-vous en tant que racine d'utilisateur et utilisez -u (nom d'utilisateur) -L, comme indiqué ci-dessous.

[Email protégé]# Crontab -u Nom d'utilisateur -l @ Maison / Accueil / Nom d'utilisateur / Mensuel-Backup 00 09-18 * * * / Accueil / Nom d'utilisateur / Check-DB-Statut

5. Comment modifier des enregistrements de crontab?

Modification des enregistrements de cron personnalisés actuels.

Pour modifier des enregistrements, utilisez Cronab -E comme indiqué ci-dessous. Par défaut, les enregistrements d'utilisateurs CRONTAB actuels seront modifiés.

[Email protégé]$ crontab -e @Yearly / Annual-Maintenance * / 10 * * * * / Accueil / Développeur / Debian / Bin / Vérifiez-disque-espace ~ "/tmp/crontab.xxxxxyjwkhw" 2L, 83C.

Lorsque vous enregistrez le fichier, il sauvegardera Crontab et affichera le message suivant, où le crontab sera modifié avec succès.

~ "crontab.xxxyjwkhw" 2L, 83C écrit crontab: Installation de nouveau crontab

Édition de racine racine crontab

Connectez-vous en tant qu'utilisateur root (Su - racine) et faites de crontab -E, comme indiqué ci-dessous.

[Email protégé]# crontab -e.

Modification des autres enregistrements de fichier Crontab

Pour modifier l'enregistrement Crontab d'un autre utilisateur Linux, connectez-vous à la racine et utilisez -u (nom d'utilisateur) -E, comme indiqué ci-dessous.

[Email protégé]# crontab -u username -e @ Maison / Maison / Nom d'utilisateur / Fedora / Bin / Mensuel-Backup 00 09-18 * * * / Accueil / Nom d'utilisateur / Ubuntu / Bin / Check-DB-Statut ~ ~ ~ "/ TMP / CronTab .Xxxxyjwkhw "2L, 83C

6. Mise en œuvre de cron toutes les minutes

Idéalement, vous n'avez peut-être pas besoin d'attribuer une exécution de cron chaque minute. Mais la compréhension de cet exemple vous aidera à comprendre d'autres exemples décrits dans cet article.

Bash * * * * * cmd

* - signifie une unité possible - c'est-à-dire chaque minute de chaque heure de l'année. De plus, l'utilisation de * directement, ce sera une fonctionnalité plus utile dans les exemples suivants.

Remarque * / 5 Dans le champ Minutes, signifie toutes les 5 minutes. Spécifiez 0-10 / 2 dans le champ Minual Field signifie toutes les 2 minutes dans les 10 premières minutes. Ainsi, cette convention peut être utilisée dans les 4 champs.

7. Exécution de tâches de fond cron toutes les 10 minutes

Utilisez ce qui suit si vous souhaitez vérifier l'espace disque toutes les 10 minutes.

* / 10 * * * / Accueil / RAMESH / CHECK-DISQUE-SPACE

Cette tâche exécute la commande de vérification de disque spécifiée toutes les 10 minutes de l'année. Mais vous devrez peut-être vérifier que dans les heures de travail ou inversement. Les exemples ci-dessus montrent comment le faire.

Au lieu de spécifier des valeurs dans 5 champs, nous pouvons les spécifier à l'aide du mot-clé comme indiqué ci-dessous.

Il existe des conditions spéciales lorsque vous pouvez utiliser 5 champs et un mot-clé supplémentaire - tels que le redémarrage, minuit, chaque année, toutes les heures.

Mots-clés cron spéciaux et leur signification

8. Calendrier des travaux pour la première minute de chaque année en utilisant @Yearly

Si vous souhaitez que la tâche Cron soit effectuée dans les premières minutes de chaque année, vous pouvez utiliser le mot-clé @Yearly, comme indiqué ci-dessous. À l'ère de l'affaire, le système effectuera une maintenance annuelle à l'aide du script de service annuel à 00h00 le 1er janvier de chaque année.

@Yearly / Home / Developer / Red-Hat / Bin / Maintenance annuelle

9. Exécutez les tâches chaque mois en utilisant le mot-clé @ Monthly

Il est similaire au mot @Yearly montré ci-dessus. Mais l'équipe est effectuée mensuellement. La commande sauvegardera à 00:00 le premier nombre de chaque mois.

@ Maison / Accueil / Ramesh / Suse / Bin / Sauvegarde de la bande

10. Exécutez des tâches tous les jours en utilisant @Daily

Utilisation du mot clé @Daily, le fichier journal du nettoyage du magazine sera créé tous les jours à 00h00 tous les jours.

@Daily / Accueil / Développeur / Arch-Linux / Bin / Nettoyage-Logs "Jour a commencé"

11. Comment exécuter la commande Linux après chaque redémarrage en utilisant @regoot?

En utilisant le mot-clé @reBoot, la commande spécifiée sera exécutée à chaque fois que le système est chargé.

@reboot cmd.

13. 12. Comment éteindre / rediriger le courrier de crontab sortant en utilisant le mot-clé mail?

Par défaut, Crontab envoie une tâche de sortie (sortie) à l'utilisateur qui a installé cette tâche. Si vous souhaitez les rediriger vers un autre utilisateur, ajoutez ou mettez à jour la variable de messagerie à Crontab, comme indiqué ci-dessous.

[Email protégé]$ crontab -l mail \u003d "développeur" @Yearly / Home / Developer / Maintenance annuelle * / 10 * * * * / Accueil / Développeur / Vérification de l'espace disque

Si vous souhaitez que le courrier ne soit pas du tout, arrêtez d'envoyer des fichiers de sortie Crontab, d'ajouter ou de mettre à jour la variable de messagerie à Crontab, comme indiqué ci-dessous.

13. Comment exécuter des tâches de cron Linux chaque seconde en utilisant crontab

Vous ne pouvez pas configurer l'exécution de cron pour chaque seconde. Parce que l'unité de terminaison minimale est une minute. Dans le scénario habituel, il n'est pas nécessaire d'exécuter l'exécution de cron chaque seconde.

14. Remarque Variable de chemin à crontab

Dans tous les exemples ci-dessus, nous avons signalé le chemin absolu de la commande Linux ou le script shell qui doit être exécuté.

Par exemple, au lieu d'instructions / Accueil / Développeur / Sauvegarde de la bande, si vous souhaitez spécifier uniquement la sauvegarde de la bande, ajoutez le chemin de la bande / accueil / développeur à la variable de chemin de chemin dans Crontab, comme indiqué ci-dessous.

[Email protégé]$ crontab -l chemin \u003d / bin: / sbin: / usr / bin: / usr / sbin: / Accueil / Développeur @Yearly-Maintenance-Maintenance * / 10 * * * * Vérifier l'espace disque

15. Installation de crontab à partir du fichier cron

Au lieu d'édition directe du fichier crontab, vous pouvez ajouter toutes les entrées au fichier CronT. S'il y a ces enregistrements dans le fichier, vous pouvez les décharger ou les installer à Cron, comme indiqué ci-dessous.

Remarque: le fichier cron-file.txt sera créé dans votre crontab, qui supprimera les enregistrements de cron précédents. Par conséquent, soyez prudent lorsque vous téléchargez des enregistrements Cron-File.txt:

[Email protégé]$ crontab -l pas de crontab pour développeur $ chat cron-file.txt @Yearly / home / développeur / entretien annuel * / 10 * * * * / Accueil / Développeur / Vérification de l'espace disque [Email protégé]$ crontab cron-file.txt [Email protégé]$ crontab -l @Yearly / Home / Developer / Maintenance annuelle * / 10 * * * * / Accueil / Développeur / Vérification de l'espace disque

Cron (cron), crontab (KronTab), Gestionnaire des tâches - Ces noms sont tous associés au "bâtiment du site" entendu à plusieurs reprises. Alors qu'est-ce que cron? Comment travailler avec lui? Pourquoi avez-vous besoin de cron et de la configurer correctement? Nous analyserons toutes ces questions aujourd'hui.

La première chose que je veux noter immédiatement: cron, crontab, Gestionnaire des tâches - Tout cela est la même chose, ne confondez pas la variété des titres.

Dans la pratique de tout maître Web, la nécessité du lancement de toutes les tâches de la planification sera invariablement. Ceux. Vous vous prescrivez simplement la commande dont vous avez besoin pour effectuer une tâche à un moment donné, et c'est tout. De plus, tout se passe sans votre participation - automatiquement et quel est le moment le plus agréable dans le temps dont vous avez besoin.

Par exemple, vous devez envoyer périodiquement des notifications aux partenaires par courrier électronique. Ou vous souhaitez installer des salutations ou des rappels automatiques. Ou vous avez un répertoire de sites et que vous souhaitez que le script de catalogue vérifie les backlinks, etc. avec la périodicité spécifiée. Toutes ces tâches peuvent être facilement automatisées en chargant ce cron ou, comme on dit - Planificateur de tâches. Et il y a des scripts dans lesquels les couronnes sont simplement nécessaires pour un fonctionnement normal.

Presque toutes les hôtesses d'hébergement modernes fournissent une fonction à l'emploi. Planificateur de tâches. S'il n'y a pas de telle fonction sur l'hébergement, il vaut mieux ne pas contacter une telle entreprise d'hébergement. Cron De nos jours, ce n'est plus un luxe et si l'hébergement n'offre pas le planificateur de tâches dans le paquet, il est préférable de rechercher une autre société, mais il n'y aura aucune autre fonction importante.

Donc, considérons toutes les actions pratiques sur la teinture cron sur l'exemple d'un CPane L rouillé (panneau de gestion de site) Société d'hébergement Huson . Pourquoi exactement Hudson ? Tout est simple - mon site vit ici et j'aime vraiment cet hébergement: paquet complet de tous les services les plus possibles pour un prix très raisonnable.

Bien que définir Planificateur de tâches Cela arrive tout aussi de même.

Nous allons sur le panneau de gestion de site, dans ce cas c'est cPanel. Accès à vous immédiatement après le shopping Hébergement , descendez plus bas et trouvez cette section, Outils supplémentaires:

Trouver dans cette section Gestionnaire des tâches Et cliquez dessus. Parfois, ce menu s'appelle le panneau de cron. Voici comment Cron est caractérisé:

"Le planificateur de tâches vous permet d'exécuter des commandes à l'heure spécifiée sans votre participation. Cela vous permet d'automatiser des opérations répétées régulièrement. Le planificateur de tâches est configuré très flexible et vous permet d'automatiser l'exécution de toutes les commandes que vous souhaitez exécuter. Pour Exemple, vous pouvez spécifier le planificateur pour supprimer chaque semaine des fichiers temporaires afin qu'ils n'occupent pas trop d'espace sur votre disque. "

Le choix fournit deux options pour contrôler la couronne:

Standard I. Avancé (dans le style de Unix), Considérons chacun d'eux.

Première option. Cliquez sur le bouton Standard, la fenêtre de configuration de la tâche s'ouvre:

Comme vous pouvez le voir, tout est très simple. Il vous suffit de définir le temps d'exécution de la commande en spécifiant pour cela dans les champs appropriés lorsque la commande est démarrée, combien: Minutes, Heure, Jour, Mois, Jour de la semaine. Et bien sûr, pour enregistrer la commande pour commencer dans le champ: Équipe pour la course à pied.

Les valeurs peuvent être écrites à la fois dans le manuel (dans le champ gauche) et utilisez la liste déroulante (les flèches sont délibérées).

Traisons ce que nous avons écrit ici. Et nous avons écrit la tâche suivante: exécutez la commande pour exécuter:
/ usr / bin / php /home/preman/domains/public_html/cron/new_day.php
Toutes les 30 minutes, toutes les 6 heures, tous les jours de janvier, s'il frappe lundi.

Après avoir défini le travail, cliquez sur le bouton Ajouter un nouveau travail de cron.

Ce n'est pas clair ce qu'ils ont écrit? :) Considérons la deuxième option, puis expliquons plus. Retournez à la page précédente.

Deuxième option. Cliquez sur le bouton Avancé (dans le style de Unix)La fenêtre d'installation de la tâche s'ouvre:

Cette option pour définir la tâche est la krona, j'aime plus. Et même si cela s'appelle une avancée, à mon avis plus facile et plus pratique.

Ici, comme dans le premier cas, vous devez spécifier lorsque la commande sera lancée, spécifie simplement: Minutess, Heures, Jour, Mois, Jour de la semaine et l'affectation elle-même sur le terrain Équipe. Après cela, cliquez sur le bouton Ajouter Cronjob. La tâche est définie. La page est mise à jour:

Et vous pouvez ajouter une nouvelle tâche, répéter à nouveau la procédure complète. Vous pouvez supprimer la tâche en cliquant sur la croix ci-contre le travail à droite.

Il y a un autre paramètre non requis, mais je le recommande de prescrire: adresse e-mail. Cette adresse recevra un rapport sur l'exécution de l'équipe. Le champ est facultatif, mais mieux d'entrer l'adresse à prendre conscience de l'affaire, si quelque chose ne va pas, la couronne vous en informera dans la lettre, et si la lettre est venue vide, cela signifie que tout va bien!

Qu'avons-nous écrit ici? Exécutez une équipe à 11 minutes, chacune 2ème heure, tous les jours, tous les mois, 1er, 3ème, 5ème, 7ème jours de la semaine.

Dans le champ de sélection: Minutes Spécifier une minute (ou minutes) à laquelle la tâche sera lancée dans le champ Heure Spécifiez une heure (ou une horloge) dans laquelle la tâche sera effectuée, ainsi que des jours (s) et des mois (s), dans chaque champ, vous pouvez spécifier comme heure spécifique et l'intervalle.

Par exemple, vous pouvez spécifier non seulement 11 minutes, mais 11-15 (intervalle), cela signifie que la tâche sera lancée toutes les 11, 12, 13, 14, 15 minutes. Ou indiquer des cocktails, par exemple: 11, 14, 18 - Cela signifie que la tâche sera lancée à 11, 14 et 18 minutes. Vous pouvez toujours utiliser un signe * (astérisque) - indique chacun. Si vous mettez * (Star) Dans le champ minute, la tâche appropriée sera courante chaque minute, c'est-à-dire 60 fois par heure.

Dans chaque champ, vous pouvez spécifier comme une heure spécifique et l'intervalle, ainsi que d'utiliser des astérisques.

Enregistrer */2 indique: Toutes les 2 heures. Toutes ces variantes d'enregistrements sont applicables à tous les champs ( Minutess, Heures, Jour, Mois, Jour de la semaine) Lorsque vous spécifiez une tâche à la KRONA. Vous comprenez vous-même que les options peuvent être des millions, exécutez la tâche d'exécution, au moins chaque minute toute l'année. Bien sûr, un tel besoin ne se produit presque jamais, mais théoriquement, une telle opportunité est.

Et pourtant, avoir une forme de certaines listes d'hébergement des restrictions sur le lancement de Krone, par exemple, pas plus de 3 à 10 fois par heure. Pourquoi? Une charge plutôt tangible sur le serveur est créée. Pour violation, votre compte peut bloquer.

Trouvons maintenant comment le champ est rempli Équipe pour la course à pied (Dans la première variante) ou la commande (dans la deuxième version).

La tâche est définie comme suit.

Tout d'abord, vous spécifiez le chemin d'accès à PHP sur votre serveur, j'ai un chemin sur le serveur telle / usr / bin / php que vous pouvez avoir d'autres personnes, vérifier avec les administrateurs de votre serveur, après le chemin d'accès à PHP. mettre l'écart et écrire le chemin interne complet vers le fichier qui devrait exécuter cron. Permettez-moi de dire que j'ai besoin de la couronne pour démarrer le fichier mail.php, connaissant le chemin interne du fichier J'écris ce qui suit:

public_html / cron / mail.php

ceux. Dans le dossier racine Public_html, il y a un dossier cron dans lequel le fichier mail.php est mené et entièrement la commande sur le lancement du fichier mail.php sera supprimée comme suit:

/ usr / bin / php /public_html/cron/mail.php

Sur différents hébergements, le chemin d'accès à PHP peut différer et enregistré de différentes manières, le dossier racine de l'emplacement du site n'arrive pas toujours public_htmlPar conséquent, s'il n'y a pas d'exemple spécifique d'écriture du travail de la Couronne, il est préférable de demander à l'administrateur, décrivant ce que vous voulez obtenir à la fin. Bien

Avez-vous aimé l'article? Partager avec des amis: