Guide d’étude RHCSA 8

Pendant de nombreuses années, les administrateurs Linux se sont appuyés sur la planification des tâches à l’aide de cron. Le fichier de configuration système principal pour le crond est /etc/crontab mais nous avons aussi le répertoire d’extension, /etc/cron.d et les répertoires dans lesquels nous pouvons ajouter des scripts pour l’exécution, /etc/cron.toutes les heures, /etc/cron.tous les jours et ainsi de suite. Les utilisateurs peuvent créer leurs propres crontabs avec la commande crontab-e. Ce qui suit montre le fichier principal /etc/crontab:

# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root# For details see man 4 crontabs# 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# | | | | |# * * * * * user-name command to be executed

Si nous devons planifier une tâche à exécuter chaque jour de la semaine, du lundi au vendredi à 15h30, nous pouvons ajouter un nouveau fichier ci-dessous /etc/crond.d/. En travaillant en tant que root, nous créons le fichier:

# echo "30 15 * * 1-5 root df -h \> /tmp/diskfree" > /etc/cron.d/diskfree

Pour planifier une tâche à exécuter toutes les 10 minutes dans un fichier cron, cela peut ressembler à ceci:

# echo "*/10 * * * * root df -h \> /tmp/diskfree10" > /etc/cron.d/diskfree10

Les fichiers cron système incluent le champ supplémentaire à utiliser pour le contexte du compte utilisateur lors de l’exécution de la tâche. Comme alternative à la planification des tâches à l’aide de fichiers système cron, nous pouvons également utiliser la commande crontab pour créer et gérer des tâches cron utilisateur qui n’utilisent pas le champ utilisateur. Tout comme avec at, nous pouvons contrôler l’accès aux crons utilisateur en utilisant le fichier /etc/cron.deny et /etc/cron.autoriser les fichiers. Par défaut, seul le fichier /etc/cron.le fichier deny existe parmi les deux fichiers et est vide. Un fichier de refus vide ne refusera alors aucun accès d’utilisateur, mais nous ajoutons une liste de noms, un par ligne refusera ces utilisateurs répertoriés. Création du fichier /etc/cron.autoriser n’accordera l’accès qu’aux utilisateurs répertoriés dans le fichier autoriser. Un /etc/cron vide.autoriser le fichier ne permet l’accès à aucun utilisateur, ce qui revient à refuser l’accès à tous.

La commande crontab est utilisée pour gérer les crontabs des utilisateurs. Lors de la modification de fichiers utilisateur, nous n’incluons pas le champ utilisateur car le contexte du compte est toujours le propriétaire du fichier crontab.

Pour modifier ou créer un nouveau crontab pour votre propre compte:

$ crontab -e

Pour modifier ou créer un nouveau crontab pour un autre utilisateur, nous travaillons en tant que root:

$ sudo crontab -e -u user1

Pour lister un crontab d’utilisateur, nous utilisons crontab-l et pour supprimer un crontab d’utilisateur, il s’agit de crontab-r. La valeur par défaut est de travailler avec l’utilisateur actuel mais, en tant que root, nous pouvons utiliser l’option -u pour travailler dans le contexte d’un autre utilisateur.