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: |