Tutoriel des débutants complets de Cron Jobs

Tutoriel des débutants complets de Cron Jobs
Cron est l'utilitaire le plus utile d'un système d'exploitation de type Linux ou Unix qui permet d'exécuter des commandes ou des scripts sur un calendrier donné sans aucune intervention utilisateur. Les commandes et scripts planifiés sont également nommés comme des travaux cron. Il est principalement utilisé pour automatiser des travaux récurrents comme l'exécution des sauvegardes planifiées, le nettoyage des fichiers temporaires, la maintenance du système et divers autres travaux récurrents. Il est similaire au planificateur de tâches dans le système d'exploitation Windows.

Dans ce tutoriel, nous vous fournirons l'introduction de base de tout ce que vous devez comprendre pour planifier un emploi avec Cron. Cela comprend la syntaxe de base de Cron, l'édition de fichiers crontab, planifier un emploi avec cron avec quelques exemples, voir Cron Job, etc.

Bases de Cron Job

Comprenons certaines bases d'un travail cron.

Qu'est-ce que Cond?

Cond est le démon du système Linux qui s'exécute en arrière-plan et vérifie chaque minute pour voir s'il y a un travail prévu à ce moment-là. S'il y en a, il effectue ce travail, sinon il reste inactif.

Syntaxe Cron Job

La syntaxe pour le travail cron est la suivante:

* * * * * Commande / script

À partir de la gauche:

  • Le premier * correspond à des minutes (0-59)
  • Le second * correspond à des heures (0-23)
  • Le troisième * correspond au jour du mois (1-31)
  • Le quatrième * correspond au mois de l'année (1-12)
  • Le cinquième * correspond au jour de la semaine (0-6, du dimanche au samedi)

Pour spécifier plusieurs valeurs dans un champ, utilisez les symboles de l'opérateur suivant:

  1. Astérisque (*): Pour spécifier toutes les valeurs possibles pour un champ
  2. Se précipiter (-): Pour sPierre une gamme de valeurs
  3. La virgule (,): Pour spécifier une liste de valeurs
  4. Séparateur (/): Pour spécifier une valeur d'étape

Édition de fichiers crontab

Crontab est un fichier qui contient les travaux planifiés dans une syntaxe spécifique. Il existe deux types de fichiers Crontab; L'un pour les travaux CRON spécifiques au système et l'autre pour les travaux CRON spécifiques à l'utilisateur.

Système Cron Jobs

Les travaux CRON à l'échelle du système sont situés dans le / etc / crontab fichier et / etc / cron.d répertoire, et ils sont passés à travers / etc / cron.de temps, / etc / cron.quotidien, / etc / cron.hebdomadaire et / etc / cron.mensuel. Seul un administrateur système peut accéder à ces fichiers.

Un administrateur système peut définir un travail cron en utilisant la commande suivante:

$ nano / etc / crontab

Voici la syntaxe du travail dans le / etc / crontab déposer:

# min hr dayofmonth mois de jour de nom d'utilisateur de la semaine
* * * * * User1 ifconfig

Travaux de cron spécifiques à l'utilisateur

Les travaux CRON spécifiques à l'utilisateur sont situés dans le /var / spool / cron / crontabs annuaire. Bien que vous puissiez modifier ces emplois manuellement, il est recommandé de modifier ces emplois à l'aide de la commande crontab -e.

Un utilisateur standard peut définir un travail cron en utilisant la commande suivante:

$ crontab -e

Par exemple, si vous êtes connecté en tant qu'utilisateur «test», l'exécution de la commande Crontab -E modifiera le fichier Crontab pour l'utilisateur «test». De même, si vous êtes connecté en tant qu'utilisateur racine, la commande crontab -e modifiera le fichier crontab pour l'utilisateur racine.

Émettez la commande ci-dessous dans le terminal pour modifier le fichier crontab pour tout autre utilisateur:

$ sudo crontab -u -e

Par exemple, si vous êtes connecté en tant qu'utilisateur «test1» et que vous souhaitez modifier le fichier Crontab pour l'utilisateur «test2», la commande serait:

$ sudo crontab -u test2 -e

Voici la syntaxe du travail cron qui peut être ajoutée dans le fichier Crontab:

# m h dayofmonth mois de jour de la semaine
* * * * * ifconfig

Vous pouvez voir dans les travaux spécifiques à l'utilisateur qu'il n'y a pas de «nom d'utilisateur» déposé.

Commandes crontab

La commande crontab est utilisée pour modifier, répertorier et supprimer les travaux CRON:

  • crontab -e Pour modifier le fichier Crontab de l'utilisateur actuel
  • crontab -l Pour afficher le contenu du fichier crontab
  • crontab -u [nom d'utilisateur] Pour modifier le fichier crontab de tout autre utilisateur
  • crontab -r Pour supprimer le fichier crontab des utilisateurs actuels
  • crontab -i Pour afficher une invite avant de supprimer le fichier Crontab de l'utilisateur actuel

Planifier un emploi avec cron

Avec Cron, vous pouvez exécuter un travail à un moment précis, une date et des intervalles avec une unité minimale en minutes, je.e., vous pouvez exécuter un emploi à chaque minute.

Pour planifier un emploi avec Cron, ouvrez le fichier Crontab en utilisant la méthode discutée dans la section précédente. Une fois que vous avez ouvert le fichier Crontab, vous serez invité à sélectionner un éditeur de texte. Tapez un nombre pour choisir votre éditeur de texte préféré. Faites défiler vers le bas jusqu'au bas du fichier et ajoutez des travaux dans la syntaxe décrite ci-dessus. Chaque ligne d'un fichier spécifie une commande. Les cinq premières entrées de la ligne spécifient l'heure prévue, et la dernière entrée spécifie quelle commande ou script devrait s'exécuter.

Exemple:

La ligne suivante dans le fichier Crontab planifiera le travail Cron pour exécuter la commande / script à toutes les 30 minutes après 5 heures de tous les jours de semaine du lundi au samedi.

* / 30 5 * * 1-6 Commande / script

Minutes

Dans ce domaine, nous spécifions les minutes où nous voulons que la commande soit exécutée. Il est spécifié de 0 à 59. Le * dans ce domaine signifie exécuter le travail à chaque minute. Dans la ligne Crontab ci-dessus, le * / 30 dit au travail cron d'exécuter la commande / script spécifiée toutes les 30 minutes.

Heures

Dans ce domaine, nous spécifions les heures où nous voulons que la commande soit exécutée. Il est spécifié de 0 à 23. Le * dans ce domaine signifie exécuter le travail toutes les heures. Dans la ligne Crontab ci-dessus, la valeur 5 indique au travail cron d'exécuter la commande / script spécifiée toutes les cinq heures.

Jour du mois

Dans ce domaine, nous spécifions les jours particuliers de mois lorsque nous voulons que la commande soit exécutée. Il est spécifié de 1 à 31. Le * dans ce domaine signifie chaque jour. Dans la ligne Crontab ci-dessus, le * dit au travail cron d'exécuter la commande / script spécifiée tous les jours.

Mois de l'année

Dans ce domaine, nous spécifions les mois particuliers lorsque nous voulons que la commande soit exécutée. Il est spécifié de 1 à 12. Le * dans ce domaine signifie chaque mois. Dans la ligne Crontab ci-dessus, le * dit au travail cron d'exécuter la commande / script spécifiée chaque mois.

Jour de la semaine

Dans ce domaine, nous spécifions les jours particuliers de la semaine où nous voulons que la commande soit exécutée. Il est spécifié de 0 à 6 du dimanche au samedi (0 pour le dimanche et 6 pour samedi). Le * dans ce domaine signifie chaque jour dans une semaine. Dans la ligne Crontab ci-dessus, le * dit au travail cron d'exécuter la commande / script spécifiée tous les jours dans une semaine.

Exemples de travaux cron

Voici quelques exemples de travaux Cron:

Exécutez un travail cron toutes les 15 minutes

Pour planifier un travail cron pour fonctionner toutes les 15 minutes, ajoutez la ligne ci-dessous dans le fichier Crontab:

* / 15 * * * * Commande / script

Exécutez un travail cron à 5 heures du matin tous les jours

Pour planifier un travail cron pour fonctionner à 5 heures du matin tous les jours, ajoutez la ligne ci-dessous dans le fichier Crontab:

0 5 * * * Commande / script

Exécutez un travail cron à 17 h tous les jours

Pour planifier un travail cron pour fonctionner à 17 h tous les jours, ajoutez la ligne ci-dessous dans le fichier Crontab:

0 17 * * * Commande / script

Exécutez un travail cron à 9 h le premier jour de chaque mois

Pour planifier un travail CRON pour fonctionner à 9 h le premier jour de chaque mois, ajoutez la ligne ci-dessous dans le fichier Crontab:

0 9 1 * * Commande / script

Exécuter un travail cron toutes les heures à chaque 15 mars

Pour planifier un travail cron toutes les heures tous les 15 mars, ajoutez la ligne ci-dessous dans le fichier Crontab:

0 * 15 3 * Commande / script

Exécutez un travail cron toutes les 5 heures

Pour planifier un travail Cron toutes les 5 heures, ajoutez la ligne ci-dessous dans le fichier Crontab:

0 * / 5 * * * Commande / script

Exécutez un travail cron toutes les 15 minutes

Pour planifier un travail cron pour fonctionner toutes les 15 minutes, ajoutez la ligne ci-dessous dans le fichier Crontab:

* / 15 * * * *

Utilisation de cordes

Les chaînes suivantes peuvent également être utilisées pour définir un travail:

  1. @hourly: Pour exécuter un travail une fois par heure, je.e., "0 * * * *"
  2. @minuit: Pour exécuter un travail une fois par jour, je.e., "0 0 * * *"
  3. @quotidien: Identique à minuit
  4. @hebdomadaire: Pour exécuter un emploi une fois par semaine, je.e., "0 0 * * 0"
  5. @mensuel: Pour exécuter un emploi une fois par mois, je.e., "0 0 1 * *"
  6. @annuellement: Pour exécuter un emploi une fois par année, je.e., "0 0 1 1 *"
  7. @annuel: Identique à @annial
  8. @reboot: Pour exécuter un emploi une fois à chaque startup

Par exemple, pour exécuter un script ou une commande chaque semaine, l'entrée dans le fichier crontab serait:

@Weekly Commande / script

Répertoires cron prédéfinis

Il existe des répertoires Cron prédéfinis dans Linux où les scripts stockés sont automatiquement exécutés. Si nous plaçons un script sous ces répertoires, il sera automatiquement exécuté à l'heure configurée.

  • / etc / cron.quotidien
  • / etc / cron.de temps
  • / etc / cron.mensuel
  • / etc / cron.hebdomadaire

Par exemple, pour exécuter un script une fois par mois, vous devrez le placer dans le / etc / cron.mensuel.

Voir les travaux cron

Afficher les travaux pour l'utilisateur actuel

Utilisez la commande suivante pour afficher tous les travaux CRON planifiés pour l'utilisateur actuel:

$ crontab -l

Afficher les travaux pour les utilisateurs root

Pour afficher tous les travaux planifiés de l'utilisateur racine, émettez la commande suivante dans le terminal:

$ cat / etc / crontab

Vous devrez vous connecter en tant qu'utilisateur racine ou exécuter la commande comme sudo.

Afficher les travaux pour les autres utilisateurs

Pour afficher tous les travaux planifiés d'un utilisateur spécifique, émettez la commande suivante dans le terminal remplaçant le nom d'utilisateur réel:

$ sudo crontab -u -l

Pour exécuter cette commande, vous aurez besoin de privilèges sudo.

Voir les travaux horaires de Cron

Pour afficher tous les travaux cron configurés pour s'exécuter toutes les heures, émettez la commande suivante dans le terminal:

$ ls -la / etc / cron.de temps

Voir les travaux quotidiens de Cron

Pour afficher tous les travaux cron configurés pour s'exécuter quotidiennement, émettez la commande suivante dans le terminal:

$ ls -la / etc / cron.quotidien/

Voir les travaux hebdomadaires Cron

Pour afficher tous les travaux cron configurés pour s'exécuter chaque semaine, émettez la commande suivante dans le terminal:

$ ls -la / etc / cron.hebdomadaire/

Voir les travaux de cron mensuels

Pour afficher tous les travaux cron configurés pour s'exécuter mensuellement, émettez la commande suivante dans le terminal:

$ ls -la / etc / cron.mensuel/

Sauvegarder tous les travaux cron

Il est recommandé de conserver une sauvegarde de tous les travaux Cron dans un fichier afin que vous puissiez récupérer en cas de suppression. Pour effectuer une sauvegarde de tous les travaux actuels, utilisez l'opérateur de redirection pour rediriger la sortie de Crontab -L vers un fichier.

$ crontab -l> backup_cron.SMS

Supprimer tous les travaux de cron prévus

Afin de supprimer tous les travaux CRON planifiés, utilisez le drapeau -r comme suit:

$ crontab -r

Permission de Cron

Nous pouvons limiter l'accès à la commande crontab via deux fichiers: / etc / cron.Autoriser et / etc / cron.refuser.

  • / etc / cron.permettre - Ajouter des utilisateurs (un par ligne) dont vous souhaitez autoriser l'accès aux commandes Crontab. Ces utilisateurs peuvent exécuter des travaux de planification.
  • / etc / cron.refuser - Ajouter des utilisateurs (un par ligne) que vous souhaitez refuser l'accès aux commandes Crontab. Ces utilisateurs ne peuvent pas exécuter des travaux planifiés.

Générateurs de syntaxe Crontab

Il existe certains sites Web qui permettent de générer une syntaxe pour les crontabs. Ces sites Web facilitent la génération d'expression de Crontab sans avoir à se souvenir de la syntaxe. Bien qu'il existe divers sites Web disponibles pour les générateurs de syntaxe tels que CrontabGenerator.com, crontab-générateur.org et cronmaker.com. Celui que je préfère surtout et trouvé utile est le crontab.gourou. En fonction de la saisie de l'utilisateur, il génère une expression Crontab que vous pouvez copier-coller dans le fichier crontab.

Conclusion

Dans ce tutoriel, nous avons expliqué les bases de Cron Jobs, sa syntaxe et comment le configurer. Nous avons également discuté de la façon de voir Cron Jobs, de créer une sauvegarde et de les supprimer si vous n'êtes plus nécessaire.