Skip to main content

Comment modifier le fichier Crontab Linux pour planifier des travaux

Tâches planifiés crontab sous Linux en Français (Mai 2025)

Tâches planifiés crontab sous Linux en Français (Mai 2025)
Anonim

Un démon sous Linux appelé cron exécute des processus à intervalles réguliers. Il vérifie que certains scripts de votre système sont exécutés dans une série de dossiers, notamment /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly et /etc/cron.monthly. Il existe également un fichier appelé / etc / crontab.

Placer des scripts dans des dossiers Cron

Vous pouvez simplement placer des 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 ls suivante:

ls / etc / cron *

Vous verrez la liste des programmes ou des scripts exécutés toutes les heures, tous les jours, toutes les semaines et tous les mois.

Le problème avec ces dossiers est qu’ils sont un peu vagues. Par exemple, du quotidien signifie que le script s'exécutera une fois par jour, mais que vous n'avez aucun contrôle sur le temps d'exécution du script au cours de la journée.

C’est là que le fichier crontab entre en jeu.

En modifiant le fichier crontab, vous pouvez exécuter un script ou un programme à la date et à l'heure exactes.

Les permissions

La commande crontab nécessite qu'un utilisateur dispose des autorisations nécessaires pour modifier un fichier crontab. Il existe essentiellement deux fichiers utilisés pour gérer les autorisations de crontab:

  • /etc/cron.allow
  • /etc/cron.deny

Si le fichier /etc/cron.allow existe, l'utilisateur qui souhaite éditer le fichier crontab doit être 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, /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 éditer la crontab.

L'utilisateur root peut toujours éditer le fichier crontab. Vous pouvez utiliser la commande su pour basculer vers l'utilisateur root ou la commande sudo pour exécuter la commande crontab.

Modification du fichier Crontab

Chaque utilisateur disposant des autorisations appropriées peut créer son propre fichier crontab. La commande cron recherche en principe tous les fichiers crontab et les parcourt.

Pour vérifier si vous avez un fichier crontab, exécutez la commande suivante:

crontab -l

Si vous n’avez pas de fichier crontab, le message "no crontab for "apparaîtra, sinon votre fichier crontab sera affiché (cette fonctionnalité diffère d’un système à l’autre, parfois elle n’affiche rien du tout et d’autres fois elle affiche" ne modifiez pas ce fichier ").

Pour créer ou éditer un fichier crontab, exécutez la commande suivante:

crontab -e

Le fichier qui s'ouvre contient beaucoup d'informations, mais l'élément clé est l'exemple juste avant la fin de la section des commentaires (les commentaires sont signalé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 6 informations à insérer dans chaque ligne du fichier crontab:

  • La minute du jour où la commande est à exécuter (m)
  • L'heure du jour où la commande est à courir (h)
  • Le jour du mois où la commande doit être exécutée (dom)
  • Le mois où la commande doit être exécutée (lundi)
  • Le jour de la semaine où la commande est à exécuter (Dow)
  • La commande

Pour chaque élément (à l'exception de 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 tous les jours, mois et jours de la semaine, cette entrée crontab compressera le répertoire personnel dans le dossier / var / backups.

Pour qu'une commande soit exécutée toutes les heures après 30 minutes, exécutez la commande suivante:

30 * * * * commande

Pour qu'une commande soit exécutée toutes les minutes après 18 heures, exécutez la commande suivante:

* 18 * * * commande

Vous devez donc faire attention à la configuration de vos commandes crontab.

Par exemple:

* * * 1 * commande

Cette commande sera exécutée toutes les minutes, toutes les heures, tous les jours et toutes les semaines de janvier.

Pour exécuter une commande le 1er janvier à 5 heures du matin, lancez 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, mais vous voudrez peut-être supprimer certaines lignes du fichier crontab.

Toutefois, si vous souhaitez supprimer le fichier crontab de votre utilisateur, exécutez la commande suivante:

crontab -r

Une façon plus sûre 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.