<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kanigoo</id>
	<title>Lea Linux - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://lea-linux.org/docs/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kanigoo"/>
	<link rel="alternate" type="text/html" href="https://lea-linux.org/documentations/Sp%C3%A9cial:Contributions/Kanigoo"/>
	<updated>2026-04-29T19:40:48Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://lea-linux.org/docs/index.php?title=Programmation_de_travaux_avec_at_cron_anacron&amp;diff=15216</id>
		<title>Programmation de travaux avec at cron anacron</title>
		<link rel="alternate" type="text/html" href="https://lea-linux.org/docs/index.php?title=Programmation_de_travaux_avec_at_cron_anacron&amp;diff=15216"/>
		<updated>2008-03-14T17:52:33Z</updated>

		<summary type="html">&lt;p&gt;Kanigoo : /* Syntaxe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Outils d&#039;administration]]&lt;br /&gt;
= Programmation de travaux =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;leatitre&amp;quot;&amp;gt;Programmation de travaux&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leapar&amp;quot;&amp;gt;par [mailto:anne@lea-linux.org Anne]&amp;lt;/div&amp;gt;&amp;lt;div class=&amp;quot;leadesc&amp;quot;&amp;gt;Où comment rendre son manchot autonome :)&amp;lt;/div&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Pourquoi ces outils de programmation ? ==&lt;br /&gt;
&lt;br /&gt;
Imaginez que vous souhaitez lancer une tâche durant la nuit, ou bien effectuer des sauvegardes régulières de vos données, remettre à jour la base de vos packages... L&#039;objectif de cet article est de vous présenter le fonctionnement et le paramétrage de trois outils de programmation sous Linux.&lt;br /&gt;
&lt;br /&gt;
== Les différents outils de programmation de tâches ==&lt;br /&gt;
&lt;br /&gt;
Votre système dispose de plusieurs outils de programmation de tâche en fonction de ce que vous souhaitez réaliser :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt; : permet l&#039;exécution d&#039;une tâche donnée à un moment donné, et ce, une seule fois. Si la machine n&#039;est pas allumée à ce moment-là, la tâche ne sera pas exécutée. Toutefois, dès que la machine est rallumée, elle est exécutée. La commande est utilisable &#039;&#039;par root et/ou tout autre utilisateur&#039;&#039; déclaré sur la machine. &amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; programmer la sauvegarde de /home le 25 décembre à 23h30.&lt;br /&gt;
* &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt; : permet l&#039;exécution d&#039;une ou plusieurs tâches à des moments selon un intervalle de temps fixé et répété. Si la machine n&#039;est pas allumée à ce moment-là, la tâche ne sera pas exécutée. La commande est utilisable par &#039;&#039;root et/ou tout autre utilisateur&#039;&#039; déclaré sur la machine. &amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; programmer la sauvegarde de /home tous les jours à 23h30.&lt;br /&gt;
* &amp;lt;code&amp;gt;anacron&amp;lt;/code&amp;gt; : permet l&#039;exécution d&#039;une ou plusieurs tâches après une période de temps déterminée. Si la machine n&#039;est pas allumée à ce moment-là, la tâche sera exécutée dés que possible. La commande est utilisable &#039;&#039;uniquement par root&#039;&#039;. &amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple :&#039;&#039;&#039; programmer la sauvegarde de /home au bout d&#039;une période de 7 jours. Si la machine reste éteinte 9 jours, la tâche s&#039;exécute lors du démarrage de la machine au 10e jour..&lt;br /&gt;
&lt;br /&gt;
== La commande &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
Comme on l&#039;a vu plus haut, &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt; permet de programmer l&#039;exécution d&#039;une tâche à un moment donné.&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement ===&lt;br /&gt;
&lt;br /&gt;
C&#039;est le démon &amp;lt;code&amp;gt;atd&amp;lt;/code&amp;gt; qui est en attente sur votre machine, qui se charge d&#039;exécuter toutes les tâches planifiées avec &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt;. Comme tous les services, on le retrouve dans le répertoire &amp;lt;code&amp;gt;/etc/init.d&amp;lt;/code&amp;gt; (parfois c&#039;est un lien vers &amp;lt;code&amp;gt;/etc/rc.d/init.d&amp;lt;/code&amp;gt;). En cas de dysfonctionnement de &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt;, il convient de vérifier, notamment, que le démon &amp;lt;code&amp;gt;atd&amp;lt;/code&amp;gt; est bien lancé :&lt;br /&gt;
&lt;br /&gt;
root@pingu# /etc/rc.d/init.d/atd status &amp;lt;br /&amp;gt; atd (pid 818) en cours d&#039;exécution&lt;br /&gt;
&lt;br /&gt;
Les travaux en attente d&#039;exécution sont stockés dans la file d&#039;attente située dans &amp;lt;code&amp;gt;/var/spool/at&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Syntaxe ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Ajouter une programmation de tâche&#039;&#039;&#039; : &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt;. Deux façon de l&#039;utiliser : avec une ligne de commande ou un fichier contenant un script à exécuter.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntaxe&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;u&amp;gt;&#039;&#039;&#039;commande&#039;&#039;&#039;&amp;lt;/u&amp;gt; : &amp;lt;code&amp;gt;at HEURE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt; La commande est ensuite saisie en mode interactif. Vous pouvez saisir autant de lignes que nécessaire et terminer par &amp;lt;span class=&amp;quot;key&amp;quot;&amp;gt;Ctrl+D&amp;lt;/span&amp;gt; pour obtenir le &amp;lt;code&amp;gt;End Of Text&amp;lt;/code&amp;gt;. &amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : programmer l&#039;affichage de &amp;quot;coucou&amp;quot; à 23h sur la console 5&lt;br /&gt;
anne@pingu$ at 23:00 &amp;lt;br /&amp;gt; warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh &amp;lt;br /&amp;gt; at&amp;gt; echo coucou &amp;gt; /dev/pts/5&amp;lt;EOT&amp;gt;&lt;br /&gt;
# &amp;lt;u&amp;gt;&#039;&#039;&#039;fichier&#039;&#039;&#039;&amp;lt;/u&amp;gt; : &amp;lt;code&amp;gt;at -f fichier HEURE&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : programmer l&#039;exécution du script &amp;lt;code&amp;gt;/home/anne/sauve&amp;lt;/code&amp;gt; à 23h.&lt;br /&gt;
anne@pingu$ at -f /home/anne/sauve c23:00&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Le format de &amp;lt;code&amp;gt;HEURE&amp;lt;/code&amp;gt;&#039;&#039;&#039; est commun aux 2 notations et permet une syntaxe assez large. Ce qui est utilisable :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;HHMM ou HH:MM&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;midnight / noon / teatime&amp;lt;/code&amp;gt; : minuit / midi / 16h (sacrés anglais ;) )&lt;br /&gt;
* &amp;lt;code&amp;gt;MMJJAA ou MM/JJ/AA ou JJ.MM.AA&amp;lt;/code&amp;gt; : (pour ceux qui mettent le jour avant le mois)&lt;br /&gt;
* &amp;lt;code&amp;gt;now + x minutes / hours / days / weeks&amp;lt;/code&amp;gt; : x minutes / heures / jours / semaines à partir de maintenant&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lister les tâches programmées&#039;&#039;&#039; au moyen de &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt; : &amp;lt;code&amp;gt;atq&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
root@pingu# atq &amp;lt;br /&amp;gt; 4 2002-12-11 02:10 a root &amp;lt;br /&amp;gt; 5 2002-12-11 02:15 a root &amp;lt;br /&amp;gt; 6 2002-12-11 02:20 a root&lt;br /&gt;
&lt;br /&gt;
Dans ce cas de figure, on a 3 tâches programmées avec at par root. La colonne de gauche indique le numéro de job attribué à la tâche (par ordre croissant d&#039;arrivée dans la file).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Supprimer&#039;&#039;&#039; une ou plusieurs tâches programmées en attente d&#039;exécution : &amp;lt;code&amp;gt;atrm n°job&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
root@pingu# atrm 6&lt;br /&gt;
&lt;br /&gt;
=== Contrôle de l&#039;utilisation de la commande ===&lt;br /&gt;
&lt;br /&gt;
La commande &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt; est accessible à root et aux utilisateurs déclarés sur la machine. Toutefois vous avez à votre disposition 2 fichiers : &amp;lt;code&amp;gt;/etc/at.allow&amp;lt;/code&amp;gt; (pour autoriser spécifiquement des utilisateurs à utiliser &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt;) et/ou &amp;lt;code&amp;gt;/etc/at.deny&amp;lt;/code&amp;gt; (pour interdire spécifiquement à des utilisateurs d&#039;utiliser &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt;). Si aucun des 2 fichiers n&#039;existe, seul root peut utiliser la commande. Par défaut, il existe souvent un fichier &amp;lt;code&amp;gt;/etc/at.deny&amp;lt;/code&amp;gt; vide qui autorise ainsi l&#039;utilisation de cette commande par tous les utilisateurs (puisque personne n&#039;est interdit).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; : je veux autoriser uniquement les utilisateurs root, pingu et anne à utiliser la commande&lt;br /&gt;
&lt;br /&gt;
root@pingu# cat /etc/at.allow &amp;lt;br /&amp;gt; root &amp;lt;br /&amp;gt; pingu &amp;lt;br /&amp;gt; anne&lt;br /&gt;
&lt;br /&gt;
Et, je ne crée pas de fichier &amp;lt;code&amp;gt;/etc/at.deny&amp;lt;/code&amp;gt; donc, puisqu&#039;il n&#039;existe pas, personne n&#039;a le droit d&#039;utiliser &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt; sauf ceux qui sont autorisés par &amp;lt;code&amp;gt;/etc/at.allow&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== La commande cron ==&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement de cron ===&lt;br /&gt;
&lt;br /&gt;
Tout comme &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt; permet de programmer des travaux à exécuter, mais ceci de manière récurrente. Par exemple pour faire une sauvegarde toutes les nuits à 2h30.&lt;br /&gt;
&lt;br /&gt;
Les composantes pour le fonctionnement de cron sont :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;un démon &amp;lt;code&amp;gt;crond&amp;lt;/code&amp;gt;&#039;&#039;&#039; : c&#039;est lui qui se charge d&#039;exécuter les travaux progammées à l&#039;aide de cron. Toutes les minutes ils vérifie la présence de nouveaux fichiers de configuration (crontab). Là encore, comme les autres services, il est situé dans &amp;lt;code&amp;gt;/etc/init.d&amp;lt;/code&amp;gt;. Le démon doit être actif pour que les tâches puissent être exécutées.&lt;br /&gt;
root@pingu# /etc/rc.d/init.d/crond status &amp;lt;br /&amp;gt; crond (pid 769) en cours d&#039;exécution&lt;br /&gt;
* &#039;&#039;&#039;un fichier de configuration, la &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt;&#039;&#039;&#039; : il contient les travaux programmés et la date d&#039;exécution. Il y a une &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; par utilisateur ayant recours à &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt;. Ces fichiers sont situés (habituellement) dans &amp;lt;code&amp;gt;/var/spool/cron&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;des commandes&#039;&#039;&#039; : elles vous permettent de manipuler le contenu de la &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; (c&#039;est à dire de l&#039;éditer, de la vider et de la modifier).&lt;br /&gt;
* &#039;&#039;&#039;un fichier de log&#039;&#039;&#039; : le fichier &amp;lt;code&amp;gt;/var/log/cron&amp;lt;/code&amp;gt; recense toutes les tâches programmées à l&#039;aide de cron.&lt;br /&gt;
&lt;br /&gt;
=== Commandes et configuration de cron ===&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; : le fichier de configuration de cron ====&lt;br /&gt;
&lt;br /&gt;
Il existe une &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; par utilisateur. Seul root peut consulter chacune d&#039;entre elles.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Syntaxe :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Le fichier doit comporter une tâche à programmer par ligne. Chaque ligne doit comporter obligatoirement 6 colonnes :&lt;br /&gt;
&lt;br /&gt;
* 1&amp;lt;sup&amp;gt;ère&amp;lt;/sup&amp;gt; colonne, les minutes : de 0 à 59&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne, les heures : de 0 à 23&lt;br /&gt;
* 3&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne, le jour du mois : de 0 à 31&lt;br /&gt;
* 4&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne, les mois : de 0 à 12&lt;br /&gt;
* 5&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne, le jour de la semaine : de 0 à 7 (dimanche correspondant à 0 ou 7)&lt;br /&gt;
* 6&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne, la tâche à exécuter&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple :&#039;&#039;&#039; pour excuter le script &amp;lt;code&amp;gt;/root/sauve.sh&amp;lt;/code&amp;gt; tous les jours à 23h15 on mettra dans la &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; de root&lt;br /&gt;
&lt;br /&gt;
15    23    *    *     *    /root/sauve.sh&lt;br /&gt;
&lt;br /&gt;
Les colonnes contenant la date d&#039;exécution peuvent contenir divers formats pour indiquer la date (pour les exemples, on utilisera la colonne des minutes de la crontab) :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; : toutes les valeurs de la plage de temps &amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; indique toutes les minutes&lt;br /&gt;
* 2 nombres séparés par un tiret : pour indiquer un intervalle de temps &amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;0-15&amp;lt;/code&amp;gt; indique toutes les minutes comprises entre 0 et 15&lt;br /&gt;
* 2 nombres ou plus séparés par des virgules : indique une liste de valeurs &amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; : &amp;lt;code&amp;gt;0,15,30,45&amp;lt;/code&amp;gt; indique les minutes 0, 15, 30 et 45 (c&#039;est à dire toutes les quart d&#039;heure).&lt;br /&gt;
* combinaison de valeurs au moyen d&#039;un pas (/) : permet par exemple de désigner toutes les valeurs paires. &amp;lt;br /&amp;gt;&#039;&#039;&#039;Exemple&#039;&#039;&#039; :&lt;br /&gt;
** &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;*/2&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; indique toutes les valeurs paires,&lt;br /&gt;
** &amp;lt;code&amp;gt;0-15/2&amp;lt;/code&amp;gt; indique toutes les valeurs paires des minutes comprises entre 0 et 15.&lt;br /&gt;
&lt;br /&gt;
Il est bien sûr possible de combiner les différentes notations pour obtenir ce dont vous aurez besoin.&lt;br /&gt;
&lt;br /&gt;
==== les commandes ====&lt;br /&gt;
&lt;br /&gt;
Nous avons vu la syntaxe de la crontab. Pour éditer, modifier ou visualiser le contenu d&#039;une &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt;, il vous faut utiliser la commande &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; avec les options suivantes :&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;crontab -l&amp;lt;/code&amp;gt; : permet de visualiser le contenu de la &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; (en lecture uniquement).&lt;br /&gt;
* &amp;lt;code&amp;gt;crontab -e&amp;lt;/code&amp;gt; : permet d&#039;éditer la &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; et éventuellement de le modifier. La commande ouvre la &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; dans un éditeur (vi par défaut sinon celui définit par la variable d&#039;environnement &amp;lt;code&amp;gt;EDITOR&amp;lt;/code&amp;gt;)&lt;br /&gt;
* &amp;lt;code&amp;gt;crontab -r&amp;lt;/code&amp;gt; : supprime la &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; dans &amp;lt;code&amp;gt;/var/spool/cron&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarque&#039;&#039;&#039; : par défaut, les commandes crontab agissent sur votre &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; uniquement. (rappel : il y a autant de &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; que d&#039;utilisateurs ayant définit des tâches à effectuer avec &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt;.) &amp;lt;br /&amp;gt; Toutefois l&#039;administrateur (root) peut utiliser une option supplémentaire : &amp;lt;code&amp;gt;-u user&amp;lt;/code&amp;gt;. Il spécifie ainsi la &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; de l&#039;utilisateur qu&#039;il veut éditer, modifier ou supprimer.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; : pour modifier la crontab de l&#039;utilisateur &amp;lt;code&amp;gt;anne&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
root@pingu# crontab -u anne -e&lt;br /&gt;
&lt;br /&gt;
=== la crontab du système ===&lt;br /&gt;
&lt;br /&gt;
Lorsque vous installez votre distribution, une &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; particulière est crée, celle du système : &amp;lt;code&amp;gt;/etc/crontab&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
root@pingu# cat /etc/crontab &lt;br /&gt;
SHELL=/bin/bash&lt;br /&gt;
PATH=/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
MAILTO=root&lt;br /&gt;
HOME=/&lt;br /&gt;
&lt;br /&gt;
# run-parts&lt;br /&gt;
01 * * * * root run-parts /etc/cron.hourly&lt;br /&gt;
02 4 * * * root run-parts /etc/cron.daily&lt;br /&gt;
22 4 * * 0 root run-parts /etc/cron.weekly&lt;br /&gt;
42 4 1 * * root run-parts /etc/cron.monthly&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Le fichier définit tout d&#039;abord un certain nombre de variables pour l&#039;exécution des tâches système : &amp;lt;code&amp;gt;SHELL&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MAILTO&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;HOME&amp;lt;/code&amp;gt;(la définition de variables est également possible dans une &amp;lt;code&amp;gt;crontab&amp;lt;/code&amp;gt; ordinaire, mais beaucoup plus rarement utilisé.). La suite du fichier utilise ensuite la syntaxe vue ci-dessus.&lt;br /&gt;
&lt;br /&gt;
L&#039;exécution des tâches utilise un script particulier : &amp;lt;code&amp;gt;/usr/bin/run-parts&amp;lt;/code&amp;gt;. Il s&#039;agit d&#039;un script bash qui exécute toutes les commandes situées dans le répertoire passé en argument. On remarquera que la temporisation utilisée pour programmer chacune de ces lignes correspond à des tâches devant s&#039;exécuter toutes les heures, les jours, les semaines, les mois.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; : la crontab système exécute tous les jours &amp;lt;code&amp;gt;run-parts /etc/cron.daily&amp;lt;/code&amp;gt;. &amp;lt;br /&amp;gt; Le répertoire &amp;lt;code&amp;gt;/etc/cron.daily&amp;lt;/code&amp;gt; contient les commandes suivantes :&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
root@pingu# ls /etc/cron.daily&lt;br /&gt;
00-logwatch 0anacron makewhatis.cron slocate.cron tmpwatch&lt;br /&gt;
00webalizer logrotate rpm tetex.cron&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Ce sont donc tous les scripts qui seront exécutés tous les jours à 4h02.&lt;br /&gt;
&lt;br /&gt;
=== Contrôle de l&#039;utilisation de la commande cron ===&lt;br /&gt;
&lt;br /&gt;
Tout comme pour la commande &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt;, la commande la commande &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt; est accessible à root et aux utilisateurs déclarés sur la machine. Toutefois vous avez là encore à votre disposition 2 fichiers : &amp;lt;code&amp;gt;/etc/cron.allow&amp;lt;/code&amp;gt; et/ou &amp;lt;code&amp;gt;/etc/cron.deny&amp;lt;/code&amp;gt; (qui fonctionne comme ceux de &amp;lt;code&amp;gt;at&amp;lt;/code&amp;gt;). Si aucun des 2 fichiers n&#039;existe, le comportement peut varier d&#039;une distribution à une autre : soit root seul peut utiliser la commande, soit aucune restriction n&#039;est appliquée.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; : je veux autoriser uniquement les utilisateurs root, pingu et anne à utiliser la commande&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
root@pingu# cat /etc/cron.allow&lt;br /&gt;
root&lt;br /&gt;
pingu&lt;br /&gt;
anne&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
Et, je ne crée pas de fichier &amp;lt;code&amp;gt;/etc/at.deny&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== la commande &amp;lt;code&amp;gt;anacron&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
=== Fonctionnement de &amp;lt;code&amp;gt;anacron&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Contrairement à &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;anacron&amp;lt;/code&amp;gt; ne fonctionne pas avec un démon. Il s&#039;agit d&#039;une commande lancée au démarrage (&amp;lt;code&amp;gt;/usr/sbin/anacron&amp;lt;/code&amp;gt;). Elle est souvent lancée comme un service, on peut donc, dans ce cas, trouver son script de démarrage dans &amp;lt;code&amp;gt;/etc/init.d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;anacron&amp;lt;/code&amp;gt; permet l&#039;exécution d&#039;une tâche au bout d&#039;une période de temps qui se serait écoulée. Contrairement à &amp;lt;code&amp;gt;cron&amp;lt;/code&amp;gt;, la spécification de la période ne permet pas autant de précision. Toutefois on a vu qu&#039;une tâche programmée à l&#039;aide de cron nécessite que le démon &amp;lt;code&amp;gt;crond&amp;lt;/code&amp;gt; soit activé. Donc si la machine est éteinte, la tâche ne sera pas exécutée.&lt;br /&gt;
&lt;br /&gt;
Imaginez que vous programmiez une tâche pour qu&#039;elle s&#039;exécute toutes les semaines. Votre machine est éteinte durant 10 jours, la commande sera donc exécutée au prochain redémarrage.&lt;br /&gt;
&lt;br /&gt;
Attention &amp;lt;code&amp;gt;anacron&amp;lt;/code&amp;gt; est un utilitaire strictement réservé à root. Le fichier de configuration est &amp;lt;code&amp;gt;/etc/anacrontab&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Le fichier de configuration : &amp;lt;code&amp;gt;anacrontab&amp;lt;/code&amp;gt; ===&lt;br /&gt;
&lt;br /&gt;
Il a une syntaxe similaire à celle de la crontab, il faut donc mette une ligne par tâche à effectuer. Chaque ligne doit contenir 4 colonnes :&lt;br /&gt;
&lt;br /&gt;
* 1&amp;lt;sup&amp;gt;ère&amp;lt;/sup&amp;gt; colonne, intervalle : exprimé en jours, il indique l&#039;intervalle de temps entre 2 exécution d&#039;une tâche.&lt;br /&gt;
* 2&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne, délai : exprimé en minutes, c&#039;est le délai entre 2 tâches exécutées par anacron, pour éviter qu&#039;elles ne s&#039;exécutent en même temps.&lt;br /&gt;
* 3&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne, étiquette : commentaire ajouté pour les logs de anacron&lt;br /&gt;
* 4&amp;lt;sup&amp;gt;ème&amp;lt;/sup&amp;gt; colonne, commande : tâche à exécuter&lt;br /&gt;
&lt;br /&gt;
La ligne suivante :&lt;br /&gt;
&lt;br /&gt;
1    65   cron.daily   run-parts /etc/cron.daily&lt;br /&gt;
&lt;br /&gt;
signifie que la commande &amp;lt;code&amp;gt;run-parts /etc/cron.daily&amp;lt;/code&amp;gt; sera exécutée 1 fois par jour, chaque tâche sera séparées des autres d&#039;au moins 65 minutes.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple :&#039;&#039;&#039; ci-dessous un exemple de anacrontab&lt;br /&gt;
&amp;lt;code multi&amp;gt;&lt;br /&gt;
root@pingu# cat /etc/anacrontab&lt;br /&gt;
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin&lt;br /&gt;
1 65 cron.daily run-parts /etc/cron.daily&lt;br /&gt;
7 70 cron.weekly run-parts /etc/cron.weekly&lt;br /&gt;
30 75 cron.monthly run-parts /etc/cron.monthly&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== conclusion ==&lt;br /&gt;
&lt;br /&gt;
Voilà présentés les principaux outils de programmation des tâches sous Linux. D&#039;autres outils existent, comme [http://fcron.free.fr fcron] qui comblerait certaines failles de sécurité de cron&lt;br /&gt;
&lt;br /&gt;
N&#039;hésitez pas à me faire parvenir vos remarques et ajouts divers sur le contenu de cet article.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;merci&amp;quot;&amp;gt;Cette page est issue de la documentation &#039;pré-wiki&#039; de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par Anne le 01/01/2003.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Copyright =&lt;br /&gt;
Copyright &amp;amp;copy; 01/01/2003, Anne&lt;br /&gt;
{{CC-BY-NC-SA}}&lt;/div&gt;</summary>
		<author><name>Kanigoo</name></author>
	</entry>
</feed>