Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
elearning:workbooks:debian:10:junior:l110 [2022/05/17 08:16] – created adminelearning:workbooks:debian:10:junior:l110 [2024/03/08 08:35] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2022.01**+Version : **2024.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
  
-======LCF505 - Gestion des Tâches======+======LDF505 - Gestion des Tâches======
  
 =====Contenu du Module===== =====Contenu du Module=====
  
-  * **LCF505 - Gestion des Tâches**+  * **LDF505 - Gestion des Tâches**
     * Contenu du Module     * Contenu du Module
     * LAB #1 - cron     * LAB #1 - cron
Ligne 15: Ligne 15:
       * 1.2 - Les Champs Temporels       * 1.2 - Les Champs Temporels
       * 1.3 - Les crontabs Utilisateurs       * 1.3 - Les crontabs Utilisateurs
 +      * 1.4 - Les Fichiers /etc/cron.allow et /etc/cron.deny
     * LAB #2 - anacron     * LAB #2 - anacron
       * 2.1 - Le Fichier /etc/anacrontab       * 2.1 - Le Fichier /etc/anacrontab
-      * 2.2 - Les Champs Temporels +      * 2.2 - Les Fichiers cron.daily, cron.weekly et cron.monthly
-      * 2.3 - Le Fichier /var/spool/anacron/cron.daily+
     * LAB #3 - at     * LAB #3 - at
-      * 3.1 - Le Répertoire /var/spool/at/+      * 3.1 - Les Fichiers /etc/at.allow et /etc/at.deny 
 +      * 3.2 - Le Répertoire /var/spool/cron/atjobs
  
-=====cron=====+=====LAB #1 - cron=====
  
-<WRAP center round important 60%> +Le service crond est normalement lancé au démarrage de la machine. Ce service est chargé de faire exécuter des tâches ( commandes et scripts ) à des moments précis. 
-**Important** Le service crond présume que la machine est allumée en permanence.+ 
 +<WRAP center round important 50%> 
 +**Important** Le service crond présume que la machine est allumée en permanence.
 </WRAP> </WRAP>
- 
-Le service crond est normalement lancé au démarrage de la machine. Ce service est chargé de faire exécuter des tâches ( commandes et scripts ) à des moments précis. Le service crond présume que la machine est allumée en permanence. 
  
 Le service crond lit toutes les minutes le fichier **/etc/crontab**, les crontabs se trouvant dans **/etc/cron.d** ainsi que les fichiers propres à chaque utilisateur. Le service crond lit toutes les minutes le fichier **/etc/crontab**, les crontabs se trouvant dans **/etc/cron.d** ainsi que les fichiers propres à chaque utilisateur.
Ligne 36: Ligne 37:
 L'utilisation de crond est réservé à root. Cependant, vous pouvez établir une liste d'utilisateurs qui ont la permission d'utiliser crond en créant un fichier nommé **cron.allow** dans **/etc**. A l'inverse, un fichier **cron.deny** peut contenir une liste d'utilisateurs qui n'ont pas la permission d'utiliser crond. L'utilisation de crond est réservé à root. Cependant, vous pouvez établir une liste d'utilisateurs qui ont la permission d'utiliser crond en créant un fichier nommé **cron.allow** dans **/etc**. A l'inverse, un fichier **cron.deny** peut contenir une liste d'utilisateurs qui n'ont pas la permission d'utiliser crond.
  
-Sous RHEL/CentOS, les crontabs des utilisateurs ont comme nom, le nom de l'utilisateur qui les crée et se trouvent dans le répertoire **/var/spool/cron/**. Par exemple, le crontab propre à l'utilisateur trainee est le fichier **/var/spool/cron/trainee**. Le service crond exécute des tâches en rajoutant une ligne dans son fichier de journalisation **/var/log/cron**.+Les crontabs des utilisateurs ont comme nom, le nom de l'utilisateur qui les crée et se trouvent dans le répertoire **/var/spool/cron/crontabs/**. Par exemple, le fichier propre à l'utilisateur trainee est le fichier **/var/spool/cron/crontabs/trainee**. Le service crond exécute des tâches en rajoutant une ligne dans son fichier de journalisation **/var/log/syslog**.
  
 ====1.1 - Le Fichier /etc/crontab==== ====1.1 - Le Fichier /etc/crontab====
  
-Sous RHEL/CentOS le fichier /etc/crontab prend la forme suivante :+Sous Debian 11 **/etc/crontab** prend la forme suivante :
  
 <code> <code>
-[root@centos8 ~]# cat /etc/crontab +root@debian11:~# cat /etc/crontab 
-SHELL=/bin/bash +/etc/crontab: system-wide crontab 
-PATH=/sbin:/bin:/usr/sbin:/usr/bin +# Unlike any other crontab you don't have to run the `crontab' 
-MAILTO=root+# command to install the new version when you edit this file 
 +# and files in /etc/cron.d. These files also have username fields, 
 +# that none of the other crontabs do.
  
-# For details see man 4 crontabs+SHELL=/bin/sh 
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  
 # Example of job definition: # Example of job definition:
Ligne 57: Ligne 61:
 # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 # |  |  |  |  | # |  |  |  |  |
-# *  *  *  *  * user-name  command to be executed+# *  *  *  *  * user-name command to be executed 
 +17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly 
 +25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 
 +47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 
 +52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) 
 +#
 </code> </code>
  
-<WRAP center round important 60%> +<WRAP center round important 50%> 
-**Important** - Dans le fichier /etc/crontab, on peut constater la définition de variables dont SHELL, MAILTO et PATH. Ces variables sont différentes des variables système. Notez que sous RHEL/CentOS, le fichier **/etc/crontab** ne contient aucune tâche à exécuter.+**Important** : Notez ici que le crontab appele un binaire, nommé **run-parts**, afin d'exécuter les scripts et commandes se trouvant dans les répertoires /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly et /etc/cron.monthly. Dans ce fichier, on peut constater la définition de variables dont SHELL et PATH. Ces variables sont différentes des variables système.
 </WRAP> </WRAP>
  
Ligne 83: Ligne 92:
 | Le joker * | Dans le champs minutes = toutes les minutes | | Le joker * | Dans le champs minutes = toutes les minutes |
 | Une périodicité telle 0-23/2 | Dans le champs heures = toutes les deux heures | | Une périodicité telle 0-23/2 | Dans le champs heures = toutes les deux heures |
- 
-Par exemple, voici le fichier **/etc/cron.d/0hourly** : 
- 
-<code> 
-[root@centos8 ~]# cat /etc/cron.d/0hourly  
-# Run the hourly jobs 
-SHELL=/bin/bash 
-PATH=/sbin:/bin:/usr/sbin:/usr/bin 
-MAILTO=root 
-01 * * * * root run-parts /etc/cron.hourly 
-</code> 
  
 ====1.3 - Les crontabs Utilisateurs==== ====1.3 - Les crontabs Utilisateurs====
  
-Chaque utilisateur peut avoir sa propre version d'un fichier crontab. Pour vérifier s'il existe une version de crontab pour lui, l'utilisateur lancera la commande suivante :+Chaque utilisateur peut avoir sa propre version d'un fichier crontab. Pour vérifier s'il existe une version de crontab pour lui, l'utilisateur lancera la commande **crontab -l**. Afin de créer son fichier crontab, l'utilisateur lance la commande crontab avec l'option **-e**. Cette commande lance l'interface de l'éditeur **vi**.
  
 <code> <code>
-[root@centos8 ~]# exit+root@debian11:~# exit
 logout logout
-[trainee@centos8 ~]$ crontab -l+trainee@debian11:~$ crontab -l
 no crontab for trainee no crontab for trainee
 </code> </code>
Ligne 109: Ligne 107:
  
 <code> <code>
-[trainee@centos8 ~]$ crontab -e +trainee@debian11:~$ crontab -e 
-</code>+</code> 
  
 Cette commande lance l'interface de l'éditeur **vi**. Tapez ensuite le texte suivant : Cette commande lance l'interface de l'éditeur **vi**. Tapez ensuite le texte suivant :
Ligne 123: Ligne 121:
  
 <code> <code>
-[trainee@centos8 ~]$ crontab -e+trainee@debian11:~$ crontab -e
 no crontab for trainee - using an empty one no crontab for trainee - using an empty one
 +
 +Select an editor.  To change later, run 'select-editor'.
 +  1. /bin/nano        <---- easiest
 +  2. /usr/bin/vim.tiny
 +
 +Choose 1-2 [1]: 2
 crontab: installing new crontab crontab: installing new crontab
 </code> </code>
  
-<WRAP center round important 60%>+<WRAP center round important 50%>
 **Important** : Ce fichier crontab va être exécuté toutes les minutes. La commande va inscrire le répertoire courant dans le fichier pwd.txt. **Important** : Ce fichier crontab va être exécuté toutes les minutes. La commande va inscrire le répertoire courant dans le fichier pwd.txt.
 </WRAP> </WRAP>
  
-Le fichier crontab que vous venez de créer, au nom de votre utilisateur, a été écrit sur le disque dans le répertoire **/var/spool/cron/**.+Le fichier crontab que vous venez de créer, au nom de votre utilisateur, a été écrit sur le disque dans le répertoire **/var/spool/cron/crontabs/**.
  
 Malgré le fait que vous venez de l'éditer, vous ne pouvez pas visualiser votre fichier en tant que simple utilisateur avec la commande cat. Seule la commande crontab -e vous permettra de consulter ou modifier votre fichier crontab.  Malgré le fait que vous venez de l'éditer, vous ne pouvez pas visualiser votre fichier en tant que simple utilisateur avec la commande cat. Seule la commande crontab -e vous permettra de consulter ou modifier votre fichier crontab. 
Ligne 139: Ligne 143:
  
 <code> <code>
-[trainee@centos8 ~]$ su -+trainee@debian11:~$ cat /var/spool/cron/crontabs/trainee 
 +cat: /var/spool/cron/crontabs/trainee: Permission denied 
 + 
 +trainee@debian11:~$ su -
 Password: fenestros Password: fenestros
-[root@centos8 ~]# cat /var/spool/cron/trainee+ 
 +root@debian11:~# cat /var/spool/cron/crontabs/trainee 
 +# DO NOT EDIT THIS FILE - edit the master and reinstall. 
 +# (/tmp/crontab.5D9U7T/crontab installed on Mon Jun  6 07:31:44 2022) 
 +# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 
 +# Edit this file to introduce tasks to be run by cron. 
 +#  
 +# Each task to run has to be defined through a single line 
 +# indicating with different fields when the task will be run 
 +# and what command to run for the task 
 +#  
 +# To define the time you can provide concrete values for 
 +# minute (m), hour (h), day of month (dom), month (mon), 
 +# and day of week (dow) or use '*' in these fields (for 'any'). 
 +#  
 +# Notice that tasks will be started based on the cron's system 
 +# daemon's notion of time and timezones. 
 +#  
 +# Output of the crontab jobs (including errors) is sent through 
 +# email to the user the crontab file belongs to (unless redirected). 
 +#  
 +# For example, you can run a backup of all your user accounts 
 +# at 5 a.m every week with: 
 +# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/ 
 +#  
 +# For more information see the manual pages of crontab(5) and cron(8) 
 +#  
 +# m h  dom mon dow   command
 * * * * * /bin/pwd > pwd.txt * * * * * /bin/pwd > pwd.txt
 </code> </code>
 +
 +====1.4 - Les Fichiers /etc/cron.allow et /etc/cron.deny====
  
 Afin d'accorder ou non le droit d'éditer son propre fichier crontab, root a la possibilité d'inscrire les noms d'utilisateurs dans un des deux fichiers : Afin d'accorder ou non le droit d'éditer son propre fichier crontab, root a la possibilité d'inscrire les noms d'utilisateurs dans un des deux fichiers :
Ligne 156: Ligne 192:
 L'inconvénient avec crond est qu'afin que celui-ci puisse exécuter des tâches automatiquement, la machine doit rester allumée en permanence. L'inconvénient avec crond est qu'afin que celui-ci puisse exécuter des tâches automatiquement, la machine doit rester allumée en permanence.
  
-Il existe un alternatif très efficace pour des machines qui ne sont pas constamment allumée. Cette solution est le logiciel Anacron. Sous RHEL/CentOS, l'utilisation d'anacron **remplace** l'utilisation de cron pour les tâches système.+Il existe un alternatif très efficace pour des machines qui ne sont pas constamment allumée. Cette solution est le logiciel Anacron. 
  
-====2.1 - Le Fichier /etc/anacrontab==== +Ouvrez le fichier /etc/anacrontab :
- +
-Ouvrez donc le fichier /etc/anacrontab :+
  
 <code> <code>
-[root@centos8 ~]# cat /etc/anacrontab+root@debian11:~# cat /etc/anacrontab
 # /etc/anacrontab: configuration file for anacron # /etc/anacrontab: configuration file for anacron
  
Ligne 169: Ligne 203:
  
 SHELL=/bin/sh SHELL=/bin/sh
-PATH=/sbin:/bin:/usr/sbin:/usr/bin +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 
-MAILTO=root +HOME=/root 
-# the maximal random delay added to the base delay of the jobs +LOGNAME=root
-RANDOM_DELAY=45 +
-# the jobs will be started during the following hours only +
-START_HOURS_RANGE=3-22+
  
-#period in days   delay in minutes   job-identifier   command +These replace cron's entries 
-1 5 cron.daily nice run-parts /etc/cron.daily +            cron.daily      run-parts --report /etc/cron.daily 
-7 25 cron.weekly nice run-parts /etc/cron.weekly +      10      cron.weekly     run-parts --report /etc/cron.weekly 
-@monthly 45 cron.monthly nice run-parts /etc/cron.monthly+@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly
 </code> </code>
  
-Vous noterez que ce fichier fait référence aux répertoires **/etc/cron.daily**, **/etc/cron.weekly** et **/etc/cron.monthly**.+====2.1 - Le Fichier /etc/anacrontab====
  
-====2.2 - Les Champs Temporels====+Vous noterez que ce fichier fait référence aux répertoires cron.daily, cron.weekly et cron.monthly.
  
 Les deux premiers champs sont des champs temporels. Dans le cas d'anacron ceux-ci correspondent à: Les deux premiers champs sont des champs temporels. Dans le cas d'anacron ceux-ci correspondent à:
  
 ^ Période ^ Délai ^ ^ Période ^ Délai ^
-| La périodicité en jours | Le délai en minutes, après le **démarrage d'anacron** et avant l'exécution des tâches dans le répertoire concerné |+| La périodicité en jours | Le délai en minutes, après le démarrage d'anacron et avant l'exécution des tâches dans le répertoire concerné | 
 + 
 +====2.2 - Les Fichiers cron.daily, cron.weekly et cron.monthly====
  
 Anacron mémorise dans les fichiers qui se trouvent dans **/var/spool/anacron/** la date à laquelle il a exécuté les commandes qui se trouvent dans anacrontab pour la dernière fois. Ces fichiers sont appelés cron.daily, cron.weekly et cron.monthly. Anacron mémorise dans les fichiers qui se trouvent dans **/var/spool/anacron/** la date à laquelle il a exécuté les commandes qui se trouvent dans anacrontab pour la dernière fois. Ces fichiers sont appelés cron.daily, cron.weekly et cron.monthly.
  
 <code> <code>
-[root@centos8 ~]# ls /var/spool/anacron/+root@debian11:~# ls /var/spool/anacron/
 cron.daily  cron.monthly  cron.weekly cron.daily  cron.monthly  cron.weekly
-[root@centos8 ~]# cat /var/spool/anacron/cron.daily  +root@debian11:~# cat /var/spool/anacron/cron.daily 
-20210602 +20220606 
-[root@centos8 ~]# cat /var/spool/anacron/cron.weekly +root@debian11:~# cat /var/spool/anacron/cron.weekly 
-20210602 +20220531 
-[root@centos8 ~]# cat /var/spool/anacron/cron.monthly +root@debian11:~# cat /var/spool/anacron/cron.monthly 
-20210526+20220510
 </code> </code>
  
-====2.3 Le Fichier /var/spool/anacron/cron.daily====+Si cron exécute les tâches normalement, les dates d'exécution des tâches planifiées sont mises-à-jour à la date du jour dans les fichiers de contrôle par un script appelé **0anacron**. Dans le cas contraire anacron va prendre le relai lors du prochain démarrage.
  
-Sous RHEL/CentOSanacron consulte le fichier **/var/spool/anacron/cron.daily** chaque heure grâce à l'exécution du script **/etc/cron.hourly/0anacron** et, en fonction de la date inscrite dans le fichier et la date du jour, décide si oui ou non s'il doit exécuter la ligne de commande.+Sous Debian 11il existe trois fichiers **0anacron** :
  
-Voici le script **/etc/cron.hourly/0anacron** :+<code> 
 +root@debian11:~# updatedb 
 +root@debian11:~# locate 0anacron 
 +/etc/cron.daily/0anacron 
 +/etc/cron.monthly/0anacron 
 +/etc/cron.weekly/0anacron 
 +</code> 
 + 
 +A savoir :
  
 <code> <code>
-[root@centos8 ~]# cat /etc/cron.hourly/0anacron+root@debian11:~# cat /etc/cron.daily/0anacron
 #!/bin/sh #!/bin/sh
-Check whether 0anacron was run today already +
-if test -r /var/spool/anacron/cron.daily; then +anacron'cron script 
-    day=`cat /var/spool/anacron/cron.daily` +
-fi +# This script updates anacron time stampsIt is called through run-parts 
-if [ `date +%Y%m%d` = "$day]; then +# either by anacron itself or by cron. 
-    exit 0 +# 
-fi+# The script is called "0anacronto assure that it will be executed 
 +# _before_ all other scripts.
  
-# Do not run jobs when on battery power +test -x /usr/sbin/anacron || exit 0 
-online=1 +anacron -u cron.daily
-for psupply in AC ADP0 ; do +
-    sysfile="/sys/class/power_supply/$psupply/online"+
  
-    if [ -f $sysfile ] ; then +root@debian11:~# cat /etc/cron.weekly/0anacron 
-        if [ `cat $sysfile 2>/dev/null`x = 1x ]; then +#!/bin/sh 
-            online=1 +# 
-            break +# anacron's cron script 
-        else +# 
-            online=0 +# This script updates anacron time stamps. It is called through run-parts 
-        fi +# either by anacron itself or by cron. 
-    fi +# 
-done +# The script is called "0anacron" to assure that it will be executed 
-if [ $online = 0 ]; then +# _before_ all other scripts. 
-    exit 0 + 
-fi +test -x /usr/sbin/anacron || exit 0 
-/usr/sbin/anacron -s+anacron -u cron.weekly 
 + 
 +root@debian11:~# cat /etc/cron.monthly/0anacron 
 +#!/bin/sh 
 +
 +# anacron's cron script 
 +
 +# This script updates anacron time stamps. It is called through run-parts 
 +# either by anacron itself or by cron. 
 +
 +# The script is called "0anacron" to assure that it will be executed 
 +# _before_ all other scripts. 
 + 
 +test -x /usr/sbin/anacron || exit 0 
 +anacron -u cron.monthly
 </code> </code>
  
-Ce script a pour but d'exécuter la commande **/usr/sbin/anacron -s**. L'option **-s** indique à anacron d'attendre la fin d'exécution d'un job avant d'exécuter le suivant.+Le but de ces trois scripts est de mettre à jour la date inscrite dans les trois fichiers **/var/spool/anacron/cron.daily**, **/var/spool/anacron/cron.weekly** et **/var/spool/anacron/cron.monthly** respectivement.
  
 =====LAB #3 - at===== =====LAB #3 - at=====
  
-Tout comme avec la commande cron, root a la possibilité d'accorder ou d'interdire aux utilisateurs le droit d'exécuter des tâches avec at en utilisant les deux fichiers suivants :+Sous Debian 11, la commande **at** n'est pas installée par défaut : 
 + 
 +<code> 
 +root@debian11:~# which at 
 + 
 +root@debian11:~# apt install -y at 
 + 
 +root@debian11:~# which at 
 +/usr/bin/at 
 +</code> 
 + 
 +====3.1 - Les Fichiers /etc/at.allow et /etc/at.deny==== 
 + 
 +Tout comme avec la commande cron, root a la possibilité d'accorder ou d'interdire aux utilisateurs le droit d'exécuter des tâches avec **at** en utilisant les deux fichiers suivants :
  
   * **/etc/at.allow**   * **/etc/at.allow**
   * **/etc/at.deny**   * **/etc/at.deny**
  
-Si le fichier at.allow existe, seuls les utilisateurs dans ce fichier pourront exécuter at.+<code> 
 +root@debian11:~# cat /etc/at.allow 
 +cat: /etc/at.allow: No such file or directory 
 + 
 +root@debian11:~# cat /etc/at.deny 
 +alias 
 +backup 
 +bin 
 +daemon 
 +ftp 
 +games 
 +gnats 
 +guest 
 +irc 
 +lp 
 +mail 
 +man 
 +nobody 
 +operator 
 +proxy 
 +qmaild 
 +qmaill 
 +qmailp 
 +qmailq 
 +qmailr 
 +qmails 
 +sync 
 +sys 
 +www-data 
 +</code> 
 + 
 +<WRAP center round important 50%> 
 +**Important** - Si le fichier **/etc/at.allow** existe, seuls les utilisateurs dans ce fichier pourront exécuter at. 
 +</WRAP> 
 + 
 +====3.2 - Le Répertoire /var/spool/cron/atjobs====
  
-En tant que root, mettez en place maintenant deux tâches pour le 31/12/2042 à 13h00 et 14h00 respectivement :+En tant que root, mettez en place maintenant deux tâches pour le 31/12/2018 à 13h00 et 14h00 respectivement :
  
 <code> <code>
-[root@centos8 ~]# at 13:00 12/31/2042+root@debian11:~# at 13:00 12/31/2042
 warning: commands will be executed using /bin/sh warning: commands will be executed using /bin/sh
 at> pwd > /tmp/test13.atd at> pwd > /tmp/test13.atd
 +[^D]  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< appuyez sur les touches Contrôle-D
 at> <EOT> at> <EOT>
 job 1 at Wed Dec 31 13:00:00 2042 job 1 at Wed Dec 31 13:00:00 2042
  
-[root@centos8 ~]# at 14:00 12/31/2042+root@debian11:~# at 14:00 12/31/2042
 warning: commands will be executed using /bin/sh warning: commands will be executed using /bin/sh
 at> free > /tmp/test14.atd at> free > /tmp/test14.atd
 +[^D]  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< appuyez sur les touches Contrôle-D
 at> <EOT> at> <EOT>
 job 2 at Wed Dec 31 14:00:00 2042 job 2 at Wed Dec 31 14:00:00 2042
 </code> </code>
  
-====3.1 - Le Répertoire /var/spool/at/==== +Sous Debian 11, les fichiers concernant ces deux tâches sont stockés dans le répertoire **/var/spool/cron/atjobs/** :
- +
-Sous RHEL/CentOS, les fichiers concernant ces deux tâches sont stockés dans le répertoire **/var/spool/at/** :+
  
 <code> <code>
-[root@centos8 ~]# ls /var/spool/at +root@debian11:~# ls /var/spool/cron/atjobs 
-a000010249d9f8  a000020249da34  spool+a000010249d890  a000020249d8cc
 </code> </code>
  
-A l'examen du deuxième fichier, vous constaterez un résultat similaire à celui-ci :+A l'examen du premier fichier, vous constaterez un résultat similaire à celui-ci :
  
 <code> <code>
-[root@centos8 ~]at -c 2+root@debian11:~# cat /var/spool/cron/atjobs/a000010249d890 
 #!/bin/sh #!/bin/sh
 # atrun uid=0 gid=0 # atrun uid=0 gid=0
 # mail trainee 0 # mail trainee 0
 umask 22 umask 22
-LS_COLORS=rs=0:di=38\;5\;33:ln=38\;5\;51:mh=00:pi=40\;38\;5\;11:so=38\;5\;13:do=38\;5\;5:bd=48\;5\;232\;38\;5\;11:cd=48\;5\;232\;38\;5\;3:or=48\;5\;232\;38\;5\;9:mi=01\;05\;37\;41:su=48\;5\;196\;38\;5\;15:sg=48\;5\;11\;38\;5\;16:ca=48\;5\;196\;38\;5\;226:tw=48\;5\;10\;38\;5\;16:ow=48\;5\;10\;38\;5\;21:st=48\;5\;21\;38\;5\;15:ex=38\;5\;40:\*.tar=38\;5\;9:\*.tgz=38\;5\;9:\*.arc=38\;5\;9:\*.arj=38\;5\;9:\*.taz=38\;5\;9:\*.lha=38\;5\;9:\*.lz4=38\;5\;9:\*.lzh=38\;5\;9:\*.lzma=38\;5\;9:\*.tlz=38\;5\;9:\*.txz=38\;5\;9:\*.tzo=38\;5\;9:\*.t7z=38\;5\;9:\*.zip=38\;5\;9:\*.z=38\;5\;9:\*.dz=38\;5\;9:\*.gz=38\;5\;9:\*.lrz=38\;5\;9:\*.lz=38\;5\;9:\*.lzo=38\;5\;9:\*.xz=38\;5\;9:\*.zst=38\;5\;9:\*.tzst=38\;5\;9:\*.bz2=38\;5\;9:\*.bz=38\;5\;9:\*.tbz=38\;5\;9:\*.tbz2=38\;5\;9:\*.tz=38\;5\;9:\*.deb=38\;5\;9:\*.rpm=38\;5\;9:\*.jar=38\;5\;9:\*.war=38\;5\;9:\*.ear=38\;5\;9:\*.sar=38\;5\;9:\*.rar=38\;5\;9:\*.alz=38\;5\;9:\*.ace=38\;5\;9:\*.zoo=38\;5\;9:\*.cpio=38\;5\;9:\*.7z=38\;5\;9:\*.rz=38\;5\;9:\*.cab=38\;5\;9:\*.wim=38\;5\;9:\*.swm=38\;5\;9:\*.dwm=38\;5\;9:\*.esd=38\;5\;9:\*.jpg=38\;5\;13:\*.jpeg=38\;5\;13:\*.mjpg=38\;5\;13:\*.mjpeg=38\;5\;13:\*.gif=38\;5\;13:\*.bmp=38\;5\;13:\*.pbm=38\;5\;13:\*.pgm=38\;5\;13:\*.ppm=38\;5\;13:\*.tga=38\;5\;13:\*.xbm=38\;5\;13:\*.xpm=38\;5\;13:\*.tif=38\;5\;13:\*.tiff=38\;5\;13:\*.png=38\;5\;13:\*.svg=38\;5\;13:\*.svgz=38\;5\;13:\*.mng=38\;5\;13:\*.pcx=38\;5\;13:\*.mov=38\;5\;13:\*.mpg=38\;5\;13:\*.mpeg=38\;5\;13:\*.m2v=38\;5\;13:\*.mkv=38\;5\;13:\*.webm=38\;5\;13:\*.ogm=38\;5\;13:\*.mp4=38\;5\;13:\*.m4v=38\;5\;13:\*.mp4v=38\;5\;13:\*.vob=38\;5\;13:\*.qt=38\;5\;13:\*.nuv=38\;5\;13:\*.wmv=38\;5\;13:\*.asf=38\;5\;13:\*.rm=38\;5\;13:\*.rmvb=38\;5\;13:\*.flc=38\;5\;13:\*.avi=38\;5\;13:\*.fli=38\;5\;13:\*.flv=38\;5\;13:\*.gl=38\;5\;13:\*.dl=38\;5\;13:\*.xcf=38\;5\;13:\*.xwd=38\;5\;13:\*.yuv=38\;5\;13:\*.cgm=38\;5\;13:\*.emf=38\;5\;13:\*.ogv=38\;5\;13:\*.ogx=38\;5\;13:\*.aac=38\;5\;45:\*.au=38\;5\;45:\*.flac=38\;5\;45:\*.m4a=38\;5\;45:\*.mid=38\;5\;45:\*.midi=38\;5\;45:\*.mka=38\;5\;45:\*.mp3=38\;5\;45:\*.mpc=38\;5\;45:\*.ogg=38\;5\;45:\*.ra=38\;5\;45:\*.wav=38\;5\;45:\*.oga=38\;5\;45:\*.opus=38\;5\;45:\*.spx=38\;5\;45:\*.xspf=38\;5\;45:; export LS_COLORS +LANGUAGE=en_US:en; export LANGUAGE
-LANG=en_US.UTF-8; export LANG +
-HISTCONTROL=ignoredups; export HISTCONTROL +
-GUESTFISH_RESTORE=\\e[0m; export GUESTFISH_RESTORE +
-HOSTNAME=centos8.ittraining.loc; export HOSTNAME +
-GUESTFISH_INIT=\\e[1\;34m; export GUESTFISH_INIT +
-USER=root; export USER +
-GUESTFISH_PS1=\\[\\e[1\;32m\\]\>\<fs\>\\[\\e[0\;31m\\]\ ; export GUESTFISH_PS1+
 PWD=/root; export PWD PWD=/root; export PWD
 +LOGNAME=root; export LOGNAME
 HOME=/root; export HOME HOME=/root; export HOME
-MAIL=/var/spool/mail/root; export MAIL +LANG=en_US.UTF-8; export LANG 
-SHELL=/bin/bash; export SHELL+USER=root; export USER
 SHLVL=1; export SHLVL SHLVL=1; export SHLVL
-LOGNAME=root; export LOGNAME +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin; export PATH 
-PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin; export PATH +MAIL=/var/mail/root; export MAIL
-GUESTFISH_OUTPUT=\\e[0m; export GUESTFISH_OUTPUT +
-HISTSIZE=1000; export HISTSIZE +
-LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN+
 cd /root || { cd /root || {
-  echo 'Execution directory inaccessible' >&+         echo 'Execution directory inaccessible' >&
-  exit 1+         exit 1
 } }
-${SHELL:-/bin/sh} << 'marcinDELIMITER4c5fdfe0' +pwd > /tmp/test13.atd
-free > /tmp/test14.atd +
-marcinDELIMITER4c5fdfe0+
 </code> </code>
  
-Pour supprimer cette tâche il convient d'utiliser la commande **atd** ou **at -d** :+Pour supprimer cette tâche il convient d'utiliser la commande **atrm** ou bien la commande **at** avec l'alias **-d** ou **-r** ainsi que le numéro de job à supprimer :
  
 <code> <code>
-[root@centos8 ~]# at -l +root@debian11:~# at -l 
-1 Wed Dec 31 13:00:00 2042 a root +      Wed Dec 31 13:00:00 2042 a root 
-2 Wed Dec 31 14:00:00 2042 a root +      Wed Dec 31 14:00:00 2042 a root 
-[root@centos8 ~]atq + 
-1 Wed Dec 31 13:00:00 2042 a root +root@debian11:~# at -d 
-2 Wed Dec 31 14:00:00 2042 a root + 
-[root@centos8 ~]# at -2 +root@debian11:~# at -
-[root@centos8 ~]# atq +      Wed Dec 31 14:00:00 2042 a root
-1 Wed Dec 31 13:00:00 2042 a root+
 </code> </code>
  
Ligne 329: Ligne 419:
  
 <code> <code>
-[root@centos8 ~]# touch todo.list +root@debian11:~# echo pwd > todo.list 
-[root@centos8 ~]# echo pwd > todo.list + 
-[root@centos8 ~]# echo free >> todo.list +root@debian11:~# echo free >> todo.list 
-[root@centos8 ~]# echo who >> todo.list + 
-[root@centos8 ~]# cat todo.list+root@debian11:~# echo who >> todo.list 
 + 
 +root@debian11:~# cat todo.list
 pwd pwd
 free free
 who who
  
-[root@centos8 ~]# at 14:30 12/31/2042 < todo.list+root@debian11:~# at 14:30 12/31/2042 < todo.list
 warning: commands will be executed using /bin/sh warning: commands will be executed using /bin/sh
 job 3 at Wed Dec 31 14:30:00 2042 job 3 at Wed Dec 31 14:30:00 2042
-</code> 
  
-<WRAP center round important 60%> +root@debian11:~# at -l 
-**Important** La commande **batch** ou son alias **at -b** est utilisée pour exécuter des commandes au moment où la charge sur le système est en dessous un certain niveauPar défaut la valeur est fixée à **1.5**. Cette valeur peut être modifiée par l'option **-l** da la commande **atd**. +3       Wed Dec 31 14:30:00 2042 a root 
-</WRAP>+2       Wed Dec 31 14:00:00 2042 a root 
 + 
 +root@debian11:~# at -
 +3       Wed Dec 31 14:30:00 2042 a root 
 +2       Wed Dec 31 14:00:00 2042 a root 
 + 
 +root@debian11:~# at -c 3 
 +#!/bin/sh 
 +# atrun uid=0 gid=0 
 +# mail trainee 0 
 +umask 22 
 +LANGUAGE=en_US:en; export LANGUAGE 
 +PWD=/root; export PWD 
 +LOGNAME=root; export LOGNAME 
 +HOME=/root; export HOME 
 +LANG=en_US.UTF-8; export LANG 
 +USER=root; export USER 
 +SHLVL=1; export SHLVL 
 +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin; export PATH 
 +MAIL=/var/mail/root; export MAIL 
 +cd /root || { 
 +         echo 'Execution directory inaccessible' >&
 +         exit 1 
 +
 +pwd 
 +free 
 +who 
 +</code>
  
 ----- -----
-Copyright © 2022 Hugh Norris.+ 
 +Copyright © 2024 Hugh Norris.
Menu