publish: crontab
This commit is contained in:
@@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"title": "crontab",
|
|
||||||
"_updated_at": "2026-05-16 21:21:51",
|
|
||||||
"slug": "cron",
|
|
||||||
"published": true,
|
|
||||||
"published_at": "2023-02-18 16:06",
|
|
||||||
"category": "Informatique",
|
|
||||||
"tags": [],
|
|
||||||
"seo_title": "",
|
|
||||||
"seo_description": ""
|
|
||||||
}
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
# crontab
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
**cron** est un démon Unix qui exécute, chaque minute, les tâches planifiées par les utilisateurs. La commande **crontab** (contraction de *chrono table*, « table de planification ») permet de consulter et modifier ces tâches.
|
|
||||||
|
|
||||||
Chaque utilisateur dispose de sa propre table ; le démon `cron`, lancé par **root**, exécute chaque tâche sous l'identité de son propriétaire.
|
|
||||||
|
|
||||||
## Format d'une ligne
|
|
||||||
|
|
||||||
Chaque ligne d'une crontab suit le format suivant :
|
|
||||||
|
|
||||||
```
|
|
||||||
mm hh jj MMM JJJ commande
|
|
||||||
```
|
|
||||||
|
|
||||||
| Champ | Plage | Description |
|
|
||||||
| ----- | ----- | ----------- |
|
|
||||||
| `mm` | 0–59 | Minute |
|
|
||||||
| `hh` | 0–23 | Heure |
|
|
||||||
| `jj` | 1–31 | Jour du mois |
|
|
||||||
| `MMM` | 1–12 | Mois |
|
|
||||||
| `JJJ` | 0–6 | Jour de la semaine (0 = dimanche) |
|
|
||||||
|
|
||||||
## Lister les tâches
|
|
||||||
|
|
||||||
Afficher la table de l'utilisateur connecté :
|
|
||||||
|
|
||||||
```
|
|
||||||
crontab -l
|
|
||||||
```
|
|
||||||
|
|
||||||
## Mots-clés
|
|
||||||
|
|
||||||
Plusieurs mots-clés peuvent remplacer le code horaire :
|
|
||||||
|
|
||||||
| Mot-clé | Description | Équivalent |
|
|
||||||
| ------- | ----------- | ---------- |
|
|
||||||
| `@reboot` | Au démarrage | (aucun) |
|
|
||||||
| `@yearly` | Tous les ans | `0 0 1 1 *` |
|
|
||||||
| `@annually` | Tous les ans | `0 0 1 1 *` |
|
|
||||||
| `@monthly` | Tous les mois | `0 0 1 * *` |
|
|
||||||
| `@weekly` | Toutes les semaines | `0 0 * * 0` |
|
|
||||||
| `@daily` | Tous les jours | `0 0 * * *` |
|
|
||||||
| `@midnight` | Toutes les nuits | `0 0 * * *` |
|
|
||||||
| `@hourly` | Toutes les heures | `0 * * * *` |
|
|
||||||
|
|
||||||
## Éditer la table
|
|
||||||
|
|
||||||
Ouvrir la crontab de l'utilisateur connecté dans l'éditeur par défaut :
|
|
||||||
|
|
||||||
```
|
|
||||||
crontab -e
|
|
||||||
```
|
|
||||||
|
|
||||||
L'éditeur utilisé peut être modifié via la variable d'environnement `EDITOR` :
|
|
||||||
|
|
||||||
```
|
|
||||||
$ export EDITOR=nano
|
|
||||||
```
|
|
||||||
|
|
||||||
## Supprimer la table
|
|
||||||
|
|
||||||
```
|
|
||||||
crontab -r
|
|
||||||
```
|
|
||||||
|
|
||||||
## Remplacer la table
|
|
||||||
|
|
||||||
Remplacer la table courante par le contenu d'un fichier :
|
|
||||||
|
|
||||||
```
|
|
||||||
crontab <fichier>
|
|
||||||
```
|
|
||||||
|
|
||||||
## Rediriger les sorties
|
|
||||||
|
|
||||||
Par défaut, la sortie standard d'une tâche `cron` est envoyée par mail à son propriétaire. Pour la rediriger, on utilise la syntaxe shell habituelle :
|
|
||||||
|
|
||||||
```
|
|
||||||
mm hh jj MMM JJJ tâche > fichier1 2> fichier2
|
|
||||||
```
|
|
||||||
|
|
||||||
- `fichier1` reçoit la sortie standard
|
|
||||||
- `fichier2` reçoit l'erreur standard
|
|
||||||
|
|
||||||
Pour ignorer toute sortie :
|
|
||||||
|
|
||||||
```
|
|
||||||
>/dev/null 2>&1
|
|
||||||
```
|
|
||||||
|
|
||||||
## Inspecter l'activité
|
|
||||||
|
|
||||||
Afficher la date du dernier accès au script de `cron` (indicateur approximatif d'activité) :
|
|
||||||
|
|
||||||
```
|
|
||||||
ls -lut /etc/init.d/cron
|
|
||||||
```
|
|
||||||
|
|
||||||
Extraire les lignes relatives à `cron` dans le journal système :
|
|
||||||
|
|
||||||
```
|
|
||||||
grep -w cron /var/log/syslog
|
|
||||||
```
|
|
||||||
|
|
||||||
## Pour aller plus loin
|
|
||||||
|
|
||||||
Les tables sont stockées dans un fichier propre à chaque utilisateur :
|
|
||||||
|
|
||||||
- `/var/spool/cron/crontabs/<utilisateur>` sous Debian, MX Linux
|
|
||||||
- `/var/spool/cron/<utilisateur>` sous Red Hat, Fedora et CentOS
|
|
||||||
|
|
||||||
Une table système centralisée existe également dans `/etc/crontab`.
|
|
||||||
|
|
||||||
Pour les postes qui ne restent pas allumés en permanence, l'utilitaire **anacron** prend le relais : il exécute, au démarrage, les tâches qui auraient dû tourner pendant que la machine était éteinte.
|
|
||||||
@@ -1,87 +1,116 @@
|
|||||||
# crontab
|
# crontab
|
||||||
|
|
||||||

|

|
||||||
Programme Unix qui exécute toutes les minutes un ensemble de taches prédéterminées.
|
|
||||||
|
|
||||||
Sous Linux, le programme **cron** s'appelle **crontab**, concaténation de **c**h**ron**o **tab**le, "table de planification". Il est exécuté par **root** et permet de s'adapter à l'identité à chacun des utilisateurs.
|
**cron** est un démon Unix qui exécute, chaque minute, les tâches planifiées par les utilisateurs. La commande **crontab** (contraction de *chrono table*, « table de planification ») permet de consulter et modifier ces tâches.
|
||||||
|
|
||||||
## - Liste la table des tâches
|
Chaque utilisateur dispose de sa propre table ; le démon `cron`, lancé par **root**, exécute chaque tâche sous l'identité de son propriétaire.
|
||||||
Afficher la liste des tâches pour l'utilisateur connecté
|
|
||||||
|
## Format d'une ligne
|
||||||
|
|
||||||
|
Chaque ligne d'une crontab suit le format suivant :
|
||||||
|
|
||||||
|
```
|
||||||
|
mm hh jj MMM JJJ commande
|
||||||
|
```
|
||||||
|
|
||||||
|
| Champ | Plage | Description |
|
||||||
|
| ----- | ----- | ----------- |
|
||||||
|
| `mm` | 0–59 | Minute |
|
||||||
|
| `hh` | 0–23 | Heure |
|
||||||
|
| `jj` | 1–31 | Jour du mois |
|
||||||
|
| `MMM` | 1–12 | Mois |
|
||||||
|
| `JJJ` | 0–6 | Jour de la semaine (0 = dimanche) |
|
||||||
|
|
||||||
|
## Lister les tâches
|
||||||
|
|
||||||
|
Afficher la table de l'utilisateur connecté :
|
||||||
|
|
||||||
```
|
```
|
||||||
crontab -l
|
crontab -l
|
||||||
```
|
```
|
||||||
|
|
||||||
## - Mots clés
|
## Mots-clés
|
||||||
Des mots-clé peuvent remplacer le code horaire.
|
|
||||||
|
|
||||||
| mot-clé | description | équivalent |
|
Plusieurs mots-clés peuvent remplacer le code horaire :
|
||||||
|
|
||||||
|
| Mot-clé | Description | Équivalent |
|
||||||
| ------- | ----------- | ---------- |
|
| ------- | ----------- | ---------- |
|
||||||
| @reboot | Au démarrage | Aucun |
|
| `@reboot` | Au démarrage | (aucun) |
|
||||||
| @yearly | Tous les ans | 0 0 1 1 * |
|
| `@yearly` | Tous les ans | `0 0 1 1 *` |
|
||||||
| @annually | Tous les ans | 0 0 1 1 * |
|
| `@annually` | Tous les ans | `0 0 1 1 *` |
|
||||||
| @monthly | Tous les mois | 0 0 1 * * |
|
| `@monthly` | Tous les mois | `0 0 1 * *` |
|
||||||
| @weekly | Toutes les semaines | 0 0 * * 0 |
|
| `@weekly` | Toutes les semaines | `0 0 * * 0` |
|
||||||
| @daily | Tous les jours | 0 0 * * * |
|
| `@daily` | Tous les jours | `0 0 * * *` |
|
||||||
| @midnight | Toutes les nuits | 0 0 * * * |
|
| `@midnight` | Toutes les nuits | `0 0 * * *` |
|
||||||
| @hourly | Toutes les heures | 0 * * * * |
|
| `@hourly` | Toutes les heures | `0 * * * *` |
|
||||||
|
|
||||||
## - Éditer la tables des tâches
|
## Éditer la table
|
||||||
Éditer la liste des tâches pour l'utilisateur connecté
|
|
||||||
|
Ouvrir la crontab de l'utilisateur connecté dans l'éditeur par défaut :
|
||||||
|
|
||||||
```
|
```
|
||||||
crontab -e
|
crontab -e
|
||||||
```
|
```
|
||||||
|
|
||||||
L'éditeur par défaut est exécuté pour éditer la table des tâches. Il est modifiable grâce à la variable d'environnement :
|
L'éditeur utilisé peut être modifié via la variable d'environnement `EDITOR` :
|
||||||
|
|
||||||
```
|
```
|
||||||
$ export EDITOR=nano
|
$ export EDITOR=nano
|
||||||
```
|
```
|
||||||
|
|
||||||
## - Supprimer la tables des tâches
|
## Supprimer la table
|
||||||
Supprimer la liste des tâches pour l'utilisateur connecté
|
|
||||||
|
|
||||||
```
|
```
|
||||||
crontab -r
|
crontab -r
|
||||||
```
|
```
|
||||||
|
|
||||||
## - Remplacer la tables des tâches
|
## Remplacer la table
|
||||||
Remplacer la liste des tâches pour l'utilisateur connecté par une nouvelle table contenu dans `<fichier>`
|
|
||||||
|
Remplacer la table courante par le contenu d'un fichier :
|
||||||
|
|
||||||
```
|
```
|
||||||
crontab <fichier>
|
crontab <fichier>
|
||||||
```
|
```
|
||||||
|
|
||||||
## - Journalisation
|
## Rediriger les sorties
|
||||||
La sortie standard pour une tache **cron** est l'envoi d'un mail. Pour modifier la sortie, il faut utiliser la syntaxe suivante :
|
|
||||||
|
Par défaut, la sortie standard d'une tâche `cron` est envoyée par mail à son propriétaire. Pour la rediriger, on utilise la syntaxe shell habituelle :
|
||||||
|
|
||||||
```
|
```
|
||||||
mm hh jj MMM JJJ tâche > fichier1 2> fichier2
|
mm hh jj MMM JJJ tâche > fichier1 2> fichier2
|
||||||
```
|
```
|
||||||
|
|
||||||
- `fichier1` contient la sortie standard
|
- `fichier1` reçoit la sortie standard
|
||||||
- `fichier2` contient l'erreur standard
|
- `fichier2` reçoit l'erreur standard
|
||||||
|
|
||||||
|
Pour ignorer toute sortie :
|
||||||
|
|
||||||
Par exemple, pour ne rien afficher :
|
|
||||||
```
|
```
|
||||||
>/dev/null 2>&1
|
>/dev/null 2>&1
|
||||||
```
|
```
|
||||||
|
|
||||||
**Afficher l'horaire de la dernière tâche exécutée** pour l'ensemble des utilisateurs :
|
## Inspecter l'activité
|
||||||
|
|
||||||
|
Afficher la date du dernier accès au script de `cron` (indicateur approximatif d'activité) :
|
||||||
|
|
||||||
```
|
```
|
||||||
ls -lut /etc/init.d/cron
|
ls -lut /etc/init.d/cron
|
||||||
```
|
```
|
||||||
|
|
||||||
**Extraire du journal du système** les informations concernant la table **cron** :
|
Extraire les lignes relatives à `cron` dans le journal système :
|
||||||
|
|
||||||
```
|
```
|
||||||
grep -w cron /var/log/syslog
|
grep -w cron /var/log/syslog
|
||||||
```
|
```
|
||||||
|
|
||||||
## - + d'infos
|
## Pour aller plus loin
|
||||||
Les informations de planification sont stockées dans un fichier relatif à l'utilisateur. Par exemple :
|
|
||||||
|
Les tables sont stockées dans un fichier propre à chaque utilisateur :
|
||||||
|
|
||||||
- `/var/spool/cron/crontabs/<utilisateur>` sous Debian, MX Linux
|
- `/var/spool/cron/crontabs/<utilisateur>` sous Debian, MX Linux
|
||||||
- `/var/spool/cron/<utilisateur>` sous Red Hat, Fedora et Cent OS
|
- `/var/spool/cron/<utilisateur>` sous Red Hat, Fedora et CentOS
|
||||||
|
|
||||||
En plus, il existe un table cron centralisée dans `/etc/crontab`.
|
Une table système centralisée existe également dans `/etc/crontab`.
|
||||||
|
|
||||||
Pour un poste de travail ne fonctionnant pas forcément toute une journée, l'application **anacron** permet de lancer les commandes qui dû l'être lorsque l'ordinateur était éteint.
|
Pour les postes qui ne restent pas allumés en permanence, l'utilitaire **anacron** prend le relais : il exécute, au démarrage, les tâches qui auraient dû tourner pendant que la machine était éteinte.
|
||||||
@@ -4,15 +4,24 @@
|
|||||||
"title": "crontab",
|
"title": "crontab",
|
||||||
"author": "cedric@abonnel.fr",
|
"author": "cedric@abonnel.fr",
|
||||||
"published": true,
|
"published": true,
|
||||||
"published_at": "2023-02-18 16:06:22",
|
"featured": false,
|
||||||
|
"published_at": "2023-02-18 16:06",
|
||||||
"created_at": "2023-02-18 16:06:22",
|
"created_at": "2023-02-18 16:06:22",
|
||||||
"updated_at": "2023-02-18 16:06:22",
|
"updated_at": "2026-05-16 21:21:52",
|
||||||
"revisions": [],
|
"revisions": [
|
||||||
|
{
|
||||||
|
"n": 1,
|
||||||
|
"date": "2026-05-16 21:21:52",
|
||||||
|
"comment": "Contenu modifié",
|
||||||
|
"title": "crontab"
|
||||||
|
}
|
||||||
|
],
|
||||||
"cover": "",
|
"cover": "",
|
||||||
"files_meta": [],
|
"files_meta": [],
|
||||||
"external_links": [],
|
"external_links": [],
|
||||||
"seo_title": "",
|
"seo_title": "",
|
||||||
"seo_description": "",
|
"seo_description": "",
|
||||||
"og_image": "",
|
"og_image": "",
|
||||||
"category": "Informatique"
|
"category": "Informatique",
|
||||||
|
"tags": []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,87 @@
|
|||||||
|
# crontab
|
||||||
|
|
||||||
|

|
||||||
|
Programme Unix qui exécute toutes les minutes un ensemble de taches prédéterminées.
|
||||||
|
|
||||||
|
Sous Linux, le programme **cron** s'appelle **crontab**, concaténation de **c**h**ron**o **tab**le, "table de planification". Il est exécuté par **root** et permet de s'adapter à l'identité à chacun des utilisateurs.
|
||||||
|
|
||||||
|
## - Liste la table des tâches
|
||||||
|
Afficher la liste des tâches pour l'utilisateur connecté
|
||||||
|
|
||||||
|
```
|
||||||
|
crontab -l
|
||||||
|
```
|
||||||
|
|
||||||
|
## - Mots clés
|
||||||
|
Des mots-clé peuvent remplacer le code horaire.
|
||||||
|
|
||||||
|
| mot-clé | description | équivalent |
|
||||||
|
| ------- | ----------- | ---------- |
|
||||||
|
| @reboot | Au démarrage | Aucun |
|
||||||
|
| @yearly | Tous les ans | 0 0 1 1 * |
|
||||||
|
| @annually | Tous les ans | 0 0 1 1 * |
|
||||||
|
| @monthly | Tous les mois | 0 0 1 * * |
|
||||||
|
| @weekly | Toutes les semaines | 0 0 * * 0 |
|
||||||
|
| @daily | Tous les jours | 0 0 * * * |
|
||||||
|
| @midnight | Toutes les nuits | 0 0 * * * |
|
||||||
|
| @hourly | Toutes les heures | 0 * * * * |
|
||||||
|
|
||||||
|
## - Éditer la tables des tâches
|
||||||
|
Éditer la liste des tâches pour l'utilisateur connecté
|
||||||
|
|
||||||
|
```
|
||||||
|
crontab -e
|
||||||
|
```
|
||||||
|
|
||||||
|
L'éditeur par défaut est exécuté pour éditer la table des tâches. Il est modifiable grâce à la variable d'environnement :
|
||||||
|
```
|
||||||
|
$ export EDITOR=nano
|
||||||
|
```
|
||||||
|
|
||||||
|
## - Supprimer la tables des tâches
|
||||||
|
Supprimer la liste des tâches pour l'utilisateur connecté
|
||||||
|
|
||||||
|
```
|
||||||
|
crontab -r
|
||||||
|
```
|
||||||
|
|
||||||
|
## - Remplacer la tables des tâches
|
||||||
|
Remplacer la liste des tâches pour l'utilisateur connecté par une nouvelle table contenu dans `<fichier>`
|
||||||
|
|
||||||
|
```
|
||||||
|
crontab <fichier>
|
||||||
|
```
|
||||||
|
|
||||||
|
## - Journalisation
|
||||||
|
La sortie standard pour une tache **cron** est l'envoi d'un mail. Pour modifier la sortie, il faut utiliser la syntaxe suivante :
|
||||||
|
|
||||||
|
```
|
||||||
|
mm hh jj MMM JJJ tâche > fichier1 2> fichier2
|
||||||
|
```
|
||||||
|
|
||||||
|
- `fichier1` contient la sortie standard
|
||||||
|
- `fichier2` contient l'erreur standard
|
||||||
|
|
||||||
|
Par exemple, pour ne rien afficher :
|
||||||
|
```
|
||||||
|
>/dev/null 2>&1
|
||||||
|
```
|
||||||
|
|
||||||
|
**Afficher l'horaire de la dernière tâche exécutée** pour l'ensemble des utilisateurs :
|
||||||
|
```
|
||||||
|
ls -lut /etc/init.d/cron
|
||||||
|
```
|
||||||
|
|
||||||
|
**Extraire du journal du système** les informations concernant la table **cron** :
|
||||||
|
```
|
||||||
|
grep -w cron /var/log/syslog
|
||||||
|
```
|
||||||
|
|
||||||
|
## - + d'infos
|
||||||
|
Les informations de planification sont stockées dans un fichier relatif à l'utilisateur. Par exemple :
|
||||||
|
- `/var/spool/cron/crontabs/<utilisateur>` sous Debian, MX Linux
|
||||||
|
- `/var/spool/cron/<utilisateur>` sous Red Hat, Fedora et Cent OS
|
||||||
|
|
||||||
|
En plus, il existe un table cron centralisée dans `/etc/crontab`.
|
||||||
|
|
||||||
|
Pour un poste de travail ne fonctionnant pas forcément toute une journée, l'application **anacron** permet de lancer les commandes qui dû l'être lorsque l'ordinateur était éteint.
|
||||||
Reference in New Issue
Block a user