Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| cron [Le 02/01/2025, 13:00] – [Distinction avec Anacron] 141.227.26.230 | cron [Le 07/01/2026, 14:05] (Version actuelle) – [Choix de l'utilisateur Cron] 141.227.26.230 | ||
|---|---|---|---|
| Ligne 8: | Ligne 8: | ||
| **Cron** est un programme pour exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiée précise, ou selon un cycle défini à l’avance. | **Cron** est un programme pour exécuter automatiquement des scripts, des commandes ou des logiciels à une date et une heure spécifiée précise, ou selon un cycle défini à l’avance. | ||
| - | Chaque utilisateur a un fichier **crontab**, lui permettant d' | + | Chaque utilisateur a un fichier **Crontab**, lui permettant d' |
| Cron est parfois appelé « planificateur de tâches » ou « gestionnaire de tâches planifiées ». | Cron est parfois appelé « planificateur de tâches » ou « gestionnaire de tâches planifiées ». | ||
| Ligne 23: | Ligne 23: | ||
| La syntaxe de Cron est plus complexe que celle d' | La syntaxe de Cron est plus complexe que celle d' | ||
| + | |||
| + | ===== Choix de l' | ||
| + | Il est important de définir clairement sous quel compte utilisateur est lancé **cron**. Ce peut-être vous (votre //user//), ou ce peut-être //root// (utilisateur qui a tous les droits). | ||
| + | |||
| + | Pour des opérations demandant normalement un mot de passe, il faudra utiliser **cron //root//**. En effet, l' | ||
| + | |||
| + | Pour des opérations en espace utilisateur (dans votre /home/), donc sans mot de passe, utilisez le **cron** de votre compte utilisateur. | ||
| + | |||
| + | Pour lancer le **cron //root//** : **sudo crontab -e**. Pour consulter ce cron sans l' | ||
| + | |||
| + | Pour lancer le cron de votre espace utilisateur : **crontab -e**. Pour consulter ce cron sans l' | ||
| + | |||
| ===== Comment fonctionne Cron ===== | ===== Comment fonctionne Cron ===== | ||
| Les tâches planifiées cron sont définies au niveau du système dans le fichier / | Les tâches planifiées cron sont définies au niveau du système dans le fichier / | ||
| - | Pour modifier vos tâches planifiées tapez : **crontab -e** (lance un éditeur du fichier crontab)\\ | + | Pour modifier vos tâches planifiées tapez : **crontab -e** ou **sudo |
| - | Les tâches définies dans **crontab** sont par principe exécutées par // | + | |
| - | Voici une courte description de la structure d'une entrée dans un fichier crontab. Les champs à renseigner sont __dans l' | + | Voici une courte description de la structure d'une entrée dans un fichier crontab. Les champs à renseigner sont __dans l' |
| * //minute// de lancement (les minutes se numérotent de 0 à 59) | * //minute// de lancement (les minutes se numérotent de 0 à 59) | ||
| Ligne 37: | Ligne 48: | ||
| * //jour de la semaine// de lancement (les jours se numérotent de 1 (lundi) à 7 (dimanche), ou s' | * //jour de la semaine// de lancement (les jours se numérotent de 1 (lundi) à 7 (dimanche), ou s' | ||
| * La commande à lancer. | * La commande à lancer. | ||
| + | Un champ contenant une étoile ** * ** signifie ' | ||
| Récapitulatif des 5 premiers champs : | Récapitulatif des 5 premiers champs : | ||
| Ligne 97: | Ligne 109: | ||
| https:// | https:// | ||
| http:// | http:// | ||
| + | |||
| ===== Commandes pour gérer les tâches planifiées Cron ===== | ===== Commandes pour gérer les tâches planifiées Cron ===== | ||
| Ligne 106: | Ligne 119: | ||
| Pour modifier vos tâches planifiées tapez : | Pour modifier vos tâches planifiées tapez : | ||
| - | |||
| <code bash> | <code bash> | ||
| + | pour celles nécessitant normalement un mot de passe (qui dès lors ne sera pas demandé) : | ||
| + | <code bash> | ||
| et pour modifier celles d'un autre utilisateur : | et pour modifier celles d'un autre utilisateur : | ||
| <code bash> | <code bash> | ||
| Ligne 113: | Ligne 127: | ||
| Quand vous sortez de l' | Quand vous sortez de l' | ||
| - | Note : sur xubuntu, il faut auparavant indiquer que l' | + | <note important> |
| + | Pour cela il faut créer un fichier | ||
| L' | L' | ||
| Ligne 125: | Ligne 140: | ||
| Certains environnements de bureau, comme KDE dans sa « Configuration du système », offrent une interface graphique pour gérer les tâches cron. | Certains environnements de bureau, comme KDE dans sa « Configuration du système », offrent une interface graphique pour gérer les tâches cron. | ||
| - | |||
| - | |||
| ===== Lancement graphique ===== | ===== Lancement graphique ===== | ||
| Ligne 140: | Ligne 153: | ||
| ===== Chemin des scripts, commandes à exécuter ou fichiers à utiliser ===== | ===== Chemin des scripts, commandes à exécuter ou fichiers à utiliser ===== | ||
| - | Cron n'a pas de PATH par défaut. | + | Une tâche cron est exécutée dans un shell non connecté (non-login) et non interactif. Les variables d' |
| - | < | + | |
| - | #!/bin/bash | + | |
| - | export LANG="fr_BE.UTF-8" | + | Il faut donc :\\ |
| + | - soit mettre les emplacements __complets__ des exécutables dans les commandes et les scripts appelés par cron, par exemple : | ||
| + | < | ||
| + | - soit ajouter une ligne de PATH dans le fichier crontab, __avant__ les appels de scripts. Cette ligne définie où il est très probable que se trouveront les programmes appelés : | ||
| + | < | ||
| + | - Soit faire les deux si on est très prudent :). | ||
| - | /usr/bin/zenity | + | Enfin, si le programme (script) exécuté doit sauvegarder des fichiers, il peut être utile de précéder l' |
| + | <code bash> | ||
| + | * * * * * cd /home/mon-compte/wokspace/ && /home/mon-compte/ | ||
| </ | </ | ||
| Ligne 154: | Ligne 172: | ||
| Si vous avez besoin qu'un script soit exécuté toutes les heures au niveau du système (par root), il suffit donc de le placer dans le dossier / | Si vous avez besoin qu'un script soit exécuté toutes les heures au niveau du système (par root), il suffit donc de le placer dans le dossier / | ||
| - | |||
| ===== Utilisation du répertoire / | ===== Utilisation du répertoire / | ||
| Ligne 171: | Ligne 188: | ||
| Une autre façon de créer une tâche planifiée devant être exécutée par root est d' | Une autre façon de créer une tâche planifiée devant être exécutée par root est d' | ||
| - | |||
| - | ==== Répertoires ==== | ||
| - | Une tâche cron est exécutée dans un shell non connecté (non-login) et non interactif. Les variables d' | ||
| - | |||
| - | Il faut donc soit mettre les emplacements complets des exécutables dans les commandes et les scripts appelés par cron, soit définir PATH dans le fichier crontab : | ||
| - | < | ||
| - | PATH=/ | ||
| - | </ | ||
| - | Il peut être utile d' | ||
| - | <code bash> | ||
| - | which python3 | ||
| - | # peut par exemple retourner | ||
| - | / | ||
| - | </ | ||
| - | |||
| - | De même, si le programme (script) exécuté doit sauvegarder des fichiers, il peut être utile de précéder l' | ||
| - | <code bash> | ||
| - | * * * * * cd / | ||
| - | </ | ||
| ==== Tests ==== | ==== Tests ==== | ||
| Ligne 195: | Ligne 193: | ||
| Il est important de vérifier que vos travaux dans **cron** fonctionnent comme prévu. Une méthode pour faire un test est de paramétrer la tâche dans le **crontab** pour qu' | Il est important de vérifier que vos travaux dans **cron** fonctionnent comme prévu. Une méthode pour faire un test est de paramétrer la tâche dans le **crontab** pour qu' | ||
| - | < | + | < |
| echo " | echo " | ||
| </ | </ | ||
| Ligne 201: | Ligne 199: | ||
| Une autre façon de contrôler la bonne exécution des tâches cron est d' | Une autre façon de contrôler la bonne exécution des tâches cron est d' | ||
| Pour cela il suffit de renseigner la variable MAILTO dans votre fichier crontab, exemple : | Pour cela il suffit de renseigner la variable MAILTO dans votre fichier crontab, exemple : | ||
| - | < | + | < |
| - | **Attention**, | + | <note important> |
| + | Au contraire, si vous ne voulez pas envoyer d’emails, ajouter simplement comme 1ère ligne utile <code bash> | ||
| Pour plus d' | Pour plus d' | ||
