GNU/Linux >> Tutoriels Linux >  >> Linux

CentOS / RHEL :Guide du débutant sur cron

Cron est un planificateur de tâches basé sur le temps, il est configuré pour exécuter des commandes à des moments ou à des intervalles donnés. Chaque utilisateur a une table cron qui définit quoi exécuter et à quel intervalle. crontab La commande est utilisée pour créer, modifier et afficher les tâches cron.

Fichiers et répertoires de configuration

– Cron est contrôlé par un ensemble de fichiers appelés crontabs.
– Il y a le fichier maître dans /etc/crontab , ainsi que les fichiers crontab pour les utilisateurs dans /var/spool/cron/ . Dans ce dernier répertoire, les fichiers portent le même nom que le nom d'utilisateur d'un utilisateur.
– Le fichier /etc/crontab exécute automatiquement des éléments dans plusieurs sous-répertoires à des périodes régulières. Les scripts sont placés dans divers répertoires - /etc/cron.* sont exécutés selon l'intervalle de temps indiqué ci-dessous. Tous les scripts de ces répertoires sont exécutés avec le privilège root.

Répertoire Heure
/etc/cron.hourly Première minute de chaque heure
/etc/cron.daily Entre 3h05 et 22h55 chaque jour
/etc/cron.weekly Entre 3h25 et 23h10 après 7 jours depuis la dernière exécution
/etc/cron.monthly Entre 3h45 et 23h30 après un mois depuis la dernière exécution

– Tout ce que l'administrateur système doit faire est de placer un script shell ou un lien vers un exécutable dans l'un des répertoires et il sera automatiquement exécuté au moment opportun.

syntaxe crontab

La configuration d'une crontab au niveau de l'utilisateur est quelque peu différente. Les fichiers dans /var/spool/cron ne sont pas modifiés directement. Au lieu de cela, un programme appelé crontab est utilisé pour les manipuler. La syntaxe de la commande crontab est :

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u [user]  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n [host]  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x [mask]  enable debugging

Comment modifier une crontab

La meilleure façon de modifier un crontab est d'utiliser la commande crontab -e . Une autre façon de faire est :

1. su to the user whose cron you want to change
2. crontab -l > file      [ copy the crontab to a file ].
3. vi file                [ make changes to the file as per your need ]
4. crontab file           [ this makes the "file" as new crontab ]

Il n'est pas nécessaire de redémarrer le démon cron après cela.

Interprétation des champs d'heure et de date

Chaque commande cron comporte 5 champs d'heure et de date, suivis d'un nom d'utilisateur [facultatif], et s'il s'agit du fichier système crontab, il sera suivi d'une commande. Les commandes sont exécutées lorsque l'heure spécifiée par les champs heure/date correspond à l'heure actuelle.

field          allowed values
-----          --------------                  
minute         0-59                  
hour           0-23                  
day of month   0-31                  
month          0-12 (or names, see below)                  
day of week    0-7 (0 or 7 is Sun, or use names)

Un champ peut être un astérisque (*), qui signifie toujours premier à dernier . Ainsi, lorsqu'il est utilisé dans le champ du mois, cela signifie tous les mois de 0 (janvier) à 12 (décembre).

Exemple de tâche Cron :

# Example of job definition:
 .---------------- minute (0 - 59)
 |  .------------- hour (0 - 23)
 |  |  .---------- day of month (1 - 31)
 |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
 |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 |  |  |  |  |
 0  1  *  *  *  [user-name] [command to be executed]

Exemples de configuration de tâches cron

Ci-dessous quelques exemples d'utilisations de crontab pour comprendre comment planifier une tâche :
Exemple : exécuter une tâche cinq minutes après minuit, tous les jours :

5 0 *  *  *     /home/oracle/scan_asm_devices.sh

Exemple : exécuter une tâche à 17h30 le 1er de chaque mois :

30 17 1  *  *   mail -s "It's 5:30pm"

Exemple : Exécution d'une tâche à 4h05 tous les lundis.

5  4  *  *  mon     echo "run at 5 after 4 every monday"

Contrôle d'accès utilisateur

– Pour permettre aux utilisateurs d'accéder aux crontabs, les fichiers /etc/cron.allow et /etc/cron.deny peuvent être utilisés pour autoriser ou refuser l'accès respectivement. Mettez simplement un nom d'utilisateur dans l'un des 2 fichiers pour autoriser ou refuser l'accès à la crontab.
– Si le fichier /etc/cron.allow existe, le fichier /etc/cron.deny ne sera pas utilisé.
– Dans l'installation par défaut, seul un fichier vide /etc/cron.deny existera.
– Si aucun des fichiers n'existe, seul l'utilisateur root aura accès à la planification d'une tâche via cron.


Linux
  1. Un guide ultime pour mettre à niveau le noyau sur CentOS/RHEL/Fedora

  2. CentOS / RHEL 7 :Guide du débutant sur le pare-feu

  3. Guide du débutant pour le montage automatique des systèmes de fichiers dans CentOS / RHEL

  4. Guide du débutant sur NFS dans CentOS / RHEL

  5. CentOS / RHEL :guide de dépannage d'iptables

Planifier des tâches Cron avec Crontab

Un guide pour débutants sur LVM

Un guide du débutant sur les tâches Cron

CentOS / RHEL 7 :Guide du débutant sur les unités de service systemd

Guide complet de configuration d'iSCSI dans CentOS / RHEL 7

Guide du débutant sur SELinux