Comment modifier le fichier Linux Crontab pour planifier des tâches
Ce qu'il faut savoir
- Affichez le contenu de crontab avec: crontab -l
- Modifiez le crontab avec: crontab -e
- Le chronométrage fonctionne avec: minute, heure, jour du mois, mois, jour de la semaine. Utilisez un astérisque (*) pour exécuter cron tous les jours, toutes les heures, etc.
Cet article explique comment utiliser cron, un démon sous Linux qui exécute des processus à intervalles réguliers. Il vérifie certains dossiers sur un système pour les scripts à exécuter dans une série de dossiers, y compris /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly et /etc/cron.monthly; il y a aussi un fichier appelé /etc/crontab.
Placer des scripts dans des dossiers Cron
Placez les scripts dans les dossiers appropriés pour qu'ils s'exécutent à intervalles réguliers. Par exemple, ouvrez une fenêtre de terminal et exécutez la commande suivante commande ls:
ls /etc/cron*
La commande répertorie les programmes ou les scripts qui s'exécutent toutes les heures, tous les jours, toutes les semaines et tous les mois.

Ces dossiers sont vagues. Par exemple, du quotidien signifie que le script s'exécute une fois par jour, mais que vous n'avez aucun contrôle sur le temps d'exécution du script au cours de cette journée.
C'est là qu'intervient le fichier crontab. En modifiant le fichier crontab, vous exécutez un script ou un programme à la date et à l'heure exactes auxquelles vous souhaitez qu'il s'exécute.
Autorisations
La commande crontab nécessite qu'un utilisateur soit autorisé à modifier un fichier crontab. Il existe deux fichiers qui gèrent les autorisations crontab: /etc/cron.allow et /etc/cron.deny.
- Si le fichier /etc/cron.allow existe, l'utilisateur qui souhaite modifier le fichier crontab doit être répertorié dans ce fichier.
- Si le fichier cron.allow n'existe pas, mais qu'il existe un fichier /etc/cron.deny, l'utilisateur ne doit pas exister dans ce fichier.
- Si les deux fichiers existent, le fichier /etc/cron.allow remplace le fichier /etc/cron.deny.
- Si aucun fichier n'existe, cela dépend de la configuration du système si un utilisateur peut modifier le crontab.
L'utilisateur root peut toujours modifier le fichier crontab. Vous pouvez soit utiliser la commande su pour passer à l'utilisateur root ou la commande sudo pour exécuter la commande crontab.
Modifier le fichier Crontab
Chaque utilisateur disposant des autorisations appropriées peut créer un fichier crontab. La commande cron recherche tous les fichiers crontab et parcourt chaque fichier.
Pour vérifier si vous disposez d'un fichier crontab, exécutez la commande suivante:
crontab -l.
Si vous n'avez pas de fichier crontab, le message pas de crontab pour apparaît, sinon votre fichier crontab s'affiche.
Cette fonctionnalité diffère d'un système à l'autre. Parfois, il n'affiche rien du tout, et d'autres fois il affiche Ne modifiez pas ce fichier.

Pour créer ou modifier un fichier crontab, exécutez la commande suivante:
crontab -e.
Le fichier qui s'ouvre contient beaucoup d'informations, mais la partie clé est l'exemple avant la fin de la section des commentaires (les commentaires sont indiqués par des lignes commençant par #).
# commande m h dom mon dow.
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

Il y a six informations à tenir sur chaque ligne du fichier crontab:
- La minute du jour où la commande doit s'exécuter (m).
- L'heure de la journée à laquelle la commande doit s'exécuter (h).
- Le jour du mois où la commande doit être exécutée (dom).
- Le mois d'exécution de la commande (mon).
- Le jour de la semaine où la commande doit s'exécuter (dow).
- La commande.
Pour chaque élément (sauf pour la commande), vous pouvez spécifier un caractère générique. Regardez l'exemple de ligne crontab suivant:
30 18 * * * tar -zcf /var/backups/home.tgz /home/
À 30 minutes, 18 heures et n'importe quel jour, mois et jour de la semaine, cette entrée de crontab sera Zip *: français et le goudron le répertoire personnel dans le dossier /var/backups.
Dans les exemples ci-dessous, remplacez le mot commande par la commande que vous souhaitez exécuter.
Pour qu'une commande s'exécute toutes les 30 minutes, exécutez la commande suivante:
30 * * * * commande.
Pour qu'une commande s'exécute toutes les minutes après 18 heures, exécutez la commande suivante:
* 18 * * * commande.
Vous devez donc être prudent lors de la configuration des commandes crontab.
Par exemple:
* * * 1 * commande.
Cette commande s'exécute chaque minute de chaque heure de chaque jour de chaque semaine de janvier.
Pour exécuter une commande à 5 heures du matin le 1er janvier, entrez la commande suivante dans le fichier crontab:
0 5 1 1 * commande.
Comment supprimer un fichier Crontab
La plupart du temps, vous ne voudrez pas supprimer le fichier crontab. Cependant, vous souhaiterez peut-être supprimer certaines lignes du fichier crontab.
Pour supprimer le fichier crontab de votre utilisateur, exécutez la commande suivante:
crontab -r.
Un moyen plus sûr de procéder consiste à exécuter la commande suivante:
crontab -i.
Le système d'exploitation demande une vérification avant de supprimer le fichier crontab.