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 | ||
| elearning:workbooks:redhat:rh134:l101 [2024/10/21 10:42] – removed admin | elearning:workbooks:redhat:rh134:l101 [2024/10/21 15:02] (Version actuelle) – admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | ~~PDF: | ||
| + | Version : **2024.01** | ||
| + | |||
| + | Dernière mise-à-jour : ~~LASTMOD~~ | ||
| + | |||
| + | ======RH13402 - Gestion des Tâches====== | ||
| + | |||
| + | =====Contenu du Module===== | ||
| + | |||
| + | * **RH13402 - Gestion des Tâches** | ||
| + | * Contenu du Module | ||
| + | * LAB #1 - cron | ||
| + | * 1.1 - Le Fichier / | ||
| + | * 1.2 - Les Champs Temporels | ||
| + | * 1.3 - Les crontabs Utilisateurs | ||
| + | * LAB #2 - anacron | ||
| + | * 2.1 - Le Fichier / | ||
| + | * 2.2 - Les Champs Temporels | ||
| + | * 2.3 - Le Fichier / | ||
| + | * LAB #3 - at | ||
| + | * 3.1 - Le Répertoire / | ||
| + | * LAB #4 - Timers systemd | ||
| + | * 4.1 - systemd-tmpfiles-clean.timer | ||
| + | * 4.2 - Configurer le systemd-tmpfiles-clean.service | ||
| + | |||
| + | =====cron===== | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** : Le service crond présume que la machine est allumée en permanence. | ||
| + | </ | ||
| + | |||
| + | 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 **/ | ||
| + | |||
| + | Si une commande produit une sortie, celle-ci est dirigée vers la messagerie. | ||
| + | |||
| + | L' | ||
| + | |||
| + | Sous Red Hat 9, les crontabs des utilisateurs ont comme nom, le nom de l' | ||
| + | |||
| + | ====1.1 - Le Fichier / | ||
| + | |||
| + | Sous Red Hat 9 le fichier / | ||
| + | |||
| + | < | ||
| + | [trainee@redhat9 training]$ cat / | ||
| + | SHELL=/ | ||
| + | PATH=/ | ||
| + | MAILTO=root | ||
| + | |||
| + | # For details see man 4 crontabs | ||
| + | |||
| + | # Example of job definition: | ||
| + | # .---------------- minute (0 - 59) | ||
| + | # | .------------- hour (0 - 23) | ||
| + | # | | .---------- day of month (1 - 31) | ||
| + | # | | | .------- month (1 - 12) OR jan, | ||
| + | # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun, | ||
| + | # | | | | | | ||
| + | # * * * * * user-name | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** - Dans le fichier / | ||
| + | </ | ||
| + | |||
| + | ====1.2 - Les Champs Temporels==== | ||
| + | |||
| + | Chaque ligne dans un fichier / | ||
| + | |||
| + | Les 5 champs sont : | ||
| + | |||
| + | ^ Minutes ^ Heures ^ Jour du mois ^ Mois de l' | ||
| + | | (0-59) | ||
| + | |||
| + | * le 0 correspond à dimanche. | ||
| + | |||
| + | Les champs temporels peuvent contenir des valeurs différentes : | ||
| + | |||
| + | ^ Exemple ^ Description ^ | ||
| + | | Une valeur absolue telle 10 | Dans le champs minutes = 10 minutes après l' | ||
| + | | Une série de valeurs telle 2,6,8 | Dans le champs mois = février, juin et août | | ||
| + | | Une intervalle telle 1-5 | Dans le champs Jour de la Semaine = du lundi au vendredi | | ||
| + | | Le joker * | Dans le champs minutes = toutes les minutes | | ||
| + | | Une périodicité telle 0-23/2 | Dans le champs heures = toutes les deux heures | | ||
| + | |||
| + | Par exemple, voici le fichier **/ | ||
| + | |||
| + | < | ||
| + | [trainee@redhat9 training]$ cat / | ||
| + | # Run the hourly jobs | ||
| + | SHELL=/ | ||
| + | PATH=/ | ||
| + | MAILTO=root | ||
| + | 01 * * * * root run-parts / | ||
| + | </ | ||
| + | |||
| + | ====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' | ||
| + | |||
| + | < | ||
| + | [trainee@redhat9 training]$ crontab -l | ||
| + | no crontab for trainee | ||
| + | </ | ||
| + | |||
| + | Afin de créer votre fichier crontab, lancez la commande crontab avec l' | ||
| + | |||
| + | < | ||
| + | [trainee@centos8 ~]$ crontab -e | ||
| + | </ | ||
| + | |||
| + | Cette commande lance l' | ||
| + | |||
| + | < | ||
| + | * * * * * /bin/pwd > pwd.txt | ||
| + | </ | ||
| + | |||
| + | Sauvegardez et quittez vi. | ||
| + | |||
| + | Vous obtiendrez un résultat similaire à celui-ci : | ||
| + | |||
| + | < | ||
| + | [trainee@redhat9 training]$ crontab -e | ||
| + | no crontab for trainee - using an empty one | ||
| + | crontab: installing new crontab | ||
| + | </ | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | **Important** : Ce fichier crontab va être exécuté toutes les minutes. La commande va inscrire le répertoire courant dans le fichier pwd.txt. | ||
| + | </ | ||
| + | |||
| + | Le fichier crontab que vous venez de créer, au nom de votre utilisateur, | ||
| + | |||
| + | Malgré le fait que vous venez de l' | ||
| + | |||
| + | Passez donc en mode super-utilisateur et visualisez le fichier en utilisant la commande cat : | ||
| + | |||
| + | < | ||
| + | [trainee@redhat9 training]$ su - | ||
| + | Password: fenestros | ||
| + | [root@redhat9 ~]# cat / | ||
| + | * * * * * /bin/pwd > pwd.txt | ||
| + | </ | ||
| + | |||
| + | Afin d' | ||
| + | |||
| + | * **/ | ||
| + | * **/ | ||
| + | |||
| + | Par contre, si root inscrit le nom d'un utilisateur dans / | ||
| + | |||
| + | =====LAB #2 - anacron===== | ||
| + | |||
| + | L' | ||
| + | |||
| + | Il existe un alternatif très efficace pour des machines qui ne sont pas constamment allumée. Cette solution est le logiciel Anacron. Sous Red Hat 9, l' | ||
| + | |||
| + | ====2.1 - Le Fichier / | ||
| + | |||
| + | Ouvrez donc le fichier / | ||
| + | |||
| + | < | ||
| + | [root@redhat9 ~]# cat / | ||
| + | # / | ||
| + | |||
| + | # See anacron(8) and anacrontab(5) for details. | ||
| + | |||
| + | SHELL=/ | ||
| + | PATH=/ | ||
| + | MAILTO=root | ||
| + | # the maximal random delay added to the base delay of the jobs | ||
| + | RANDOM_DELAY=45 | ||
| + | # the jobs will be started during the following hours only | ||
| + | START_HOURS_RANGE=3-22 | ||
| + | |||
| + | #period in days delay in minutes | ||
| + | 1 | ||
| + | 7 | ||
| + | @monthly 45 | ||
| + | </ | ||
| + | |||
| + | Vous noterez que ce fichier fait référence aux répertoires **/ | ||
| + | |||
| + | ====2.2 - Les Champs Temporels==== | ||
| + | |||
| + | Les deux premiers champs sont des champs temporels. Dans le cas d' | ||
| + | |||
| + | ^ Période ^ Délai ^ | ||
| + | | La périodicité en jours | Le délai en minutes, après le **démarrage d' | ||
| + | |||
| + | Anacron mémorise dans les fichiers qui se trouvent dans **/ | ||
| + | |||
| + | < | ||
| + | [root@redhat9 ~]# ls / | ||
| + | cron.daily | ||
| + | [root@redhat9 ~]# cat / | ||
| + | 20241021 | ||
| + | [root@redhat9 ~]# cat / | ||
| + | 20241021 | ||
| + | [root@redhat9 ~]# cat / | ||
| + | 20240925 | ||
| + | </ | ||
| + | |||
| + | ====2.3 - Le Fichier / | ||
| + | |||
| + | Sous Red Hat 9, anacron consulte le fichier **/ | ||
| + | |||
| + | Voici le script **/ | ||
| + | |||
| + | < | ||
| + | [root@redhat9 ~]# cat / | ||
| + | # | ||
| + | # Check whether 0anacron was run today already | ||
| + | if test -r / | ||
| + | day=`cat / | ||
| + | fi | ||
| + | if [ `date +%Y%m%d` = " | ||
| + | exit 0 | ||
| + | fi | ||
| + | |||
| + | # Do not run jobs when on battery power | ||
| + | online=1 | ||
| + | for psupply in / | ||
| + | if [ `cat " | ||
| + | if [ `cat " | ||
| + | online=1 | ||
| + | break | ||
| + | else | ||
| + | online=0 | ||
| + | fi | ||
| + | fi | ||
| + | done | ||
| + | if [ $online = 0 ]; then | ||
| + | exit 0 | ||
| + | fi | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | Ce script a pour but d' | ||
| + | |||
| + | =====LAB #3 - at===== | ||
| + | |||
| + | Tout comme avec la commande cron, root a la possibilité d' | ||
| + | |||
| + | * **/ | ||
| + | * **/ | ||
| + | |||
| + | Si le fichier at.allow existe, seuls les utilisateurs dans ce fichier pourront exécuter at. | ||
| + | |||
| + | En tant que root, mettez en place maintenant deux tâches pour le 31/12/2042 à 13h00 et 14h00 respectivement : | ||
| + | |||
| + | < | ||
| + | [root@redhat9 ~]# at 13:00 12/31/2042 | ||
| + | warning: commands will be executed using /bin/sh | ||
| + | at> pwd > / | ||
| + | at> [^D] | ||
| + | at> <EOT> | ||
| + | job 1 at Wed Dec 31 13:00:00 2042 | ||
| + | |||
| + | [root@redhat9 ~]# at 14:00 12/31/2042 | ||
| + | warning: commands will be executed using /bin/sh | ||
| + | at> free > / | ||
| + | at> [^D] | ||
| + | at> <EOT> | ||
| + | job 2 at Wed Dec 31 14:00:00 2042 | ||
| + | </ | ||
| + | |||
| + | ====3.1 - Le Répertoire / | ||
| + | |||
| + | Sous Red Hat 9, les fichiers concernant ces deux tâches sont stockés dans le répertoire **/ | ||
| + | |||
| + | < | ||
| + | [root@redhat9 ~]# ls / | ||
| + | a000010249d890 | ||
| + | </ | ||
| + | |||
| + | A l' | ||
| + | |||
| + | < | ||
| + | [root@redhat9 ~]# at -c 2 | ||
| + | #!/bin/sh | ||
| + | # atrun uid=0 gid=0 | ||
| + | # mail trainee 0 | ||
| + | umask 22 | ||
| + | SHELL=/ | ||
| + | HISTCONTROL=ignoredups; | ||
| + | HISTSIZE=1000; | ||
| + | HOSTNAME=redhat9.ittraining.loc; | ||
| + | PWD=/root; export PWD | ||
| + | LOGNAME=root; | ||
| + | HOME=/root; export HOME | ||
| + | LANG=en_US.UTF-8; | ||
| + | LS_COLORS=rs=0: | ||