21.2. « At » et « Batch »
Pendant que Cron est utilisé pour planifier des tâches récurrentes, l'utilitaire At est utilisé pour planifier une tâche ponctuelle à un moment spécifique et l'utilitaire Batch est utilisé pour planifier une tâche ponctuelle à exécuter lorsque la charge moyenne du système tombe sous 0.8.
21.2.1. Installer « At » et « Batch »
Pour déterminer si le paquet at est déjà installé sur votre système, veuillez exécuter la commande suivante :
rpm -q at
La commande retourne le nom complet du paquet at s'il est déjà installé ou vous notifie que le paquet n'est pas disponible.
Pour installer les paquets, veuillez utiliser la commande
yum
sous le format suivant en tant qu'utilisateur root
:
yum install package
Par exemple, pour installer « At » et « Batch », veuillez saisir ce qui suit dans une invite de shell :
~]# yum install at
Pour obtenir davantage d'informations sur la manière d'installer de nouveaux paquets sur Red Hat Enterprise Linux, veuillez consulter la Section 8.2.4, « Installation de paquets ».
21.2.2. Exécuter le service « At »
Les tâches « At » et « Batch » sont prélevées par le service
atd
. Cette section fournit des informations sur la manière de démarrer, arrêter, et de redémarrer le service atd
, et montre comment le configurer afin qu'il soit lancé automatiquement lors du démarrage. Pour obtenir davantage d'informations sur la manière de gérer des services système sur Red Hat Enterprise Linux 7 en général, veuillez consulter le Chapitre 9, Gérer les services avec systemd.
21.2.2.1. Démarrer et arrêter le service « At »
Pour déterminer si le service est en cours d'exécution, veuillez utiliser la commande suivante :
systemctl status atd.service
Pour exécuter le service
atd
dans la session actuelle, veuillez saisir ce qui suit dans l'invite de shell en tant qu'utilisateur root
:
systemctl start atd.service
Pour configurer le service de manière à ce qu'il soit lancé automatiquement lors du démarrage système, veuillez utiliser la commande suivante en tant qu'utilisateur
root
:
systemctl enable atd.service
Note
Il est recommandé de configurer votre système de manière à lancer automatiquement le service
atd
lors du démarrage.
21.2.2.2. Arrêter le service « At »
Pour arrêter le service
atd
, veuillez saisir ce qui suit dans une invite de shell en tant qu'utilisateur root
:
systemctl stop atd.service
Pour empêcher le service d'être lancé automatiquement au démarrage, veuillez utiliser la commande suivante en tant qu'utilisateur
root
:
systemctl disable atd.service
21.2.2.3. Redémarrer le service « At »
Pour redémarrer le service
atd
, veuillez saisir ce qui suit dans une invite de shell en tant qu'utilisateur root
:
systemctl restart atd.service
Cette commande arrête le service et le lance à nouveau en une succession rapide.
21.2.3. Configurer une tâche « At »
Pour planifier une tâche ponctuelle à un moment particulier avec l'utilitaire At, veuillez procéder comme suit :
- Sur la ligne de commande, veuillez saisir la commande
at TIME
, oùTIME
représente l'heure à laquelle la commande doit être exécutée.L'argument TIME peut être défini à l'aide de l'un des formats suivants :HH:MM
indique l'heure et la minute exacte ; par exemple,04:00
signifie 04h00.midnight
signifie 00h00.noon
signifie 12h00.teatime
signifie 16h00.- Format
MONTHDAYYEAR
; par exemple,January 15 2012
signifie le 15ème jour du mois de janvier de l'année 2012. La valeur de l'année est optionnelle. - Formats
MMDDYY
,MM/DD/YY
, ouMM.DD.YY
; par exemple,011512
pour le 15ème jour du mois de janvier de l'année 2012. now + TIME
où TIME est défini en tant que nombre entier et le type de valeur : minutes (« minutes »), heures (« hours »), jour (« days »), ou semaines (« weeks »). Par exemple,now + 5 days
indique que la commande sera exécutée à la même heure dans cinq jours.L'heure doit être spécifiée en premier, suivie de la date optionnelle. Pour obtenir davantage d'informations sur le format de l'heure, veuillez consulter le fichier texte/usr/share/doc/at-<version>/timespec
.
Si l'heure spécifiée est déjà passée, la tâche sera exécutée au même moment le jour suivant. - Définissez les commandes de la tâche dans l'invite
at>
affichée :- Veuillez saisir la commande que la tâche devra exécuter et appuyez sur Entrée. Optionnellement, répétez l'étape pour fournir des commandes multiples.
- Saisissez un script shell à l'invite et appuyez sur Entrée après chaque ligne du script.La tâche utilisera l'ensemble du shell dans l'environnement
SHELL
de l'utilisateur, le shell de connexion de l'utilisateur, ou/bin/sh
(en fonction de ce qui est trouvé en premier).
- Une fois terminé, veuillez appuyer sur Ctrl+D sur une ligne vide pour sortir de l'invite de commande.
Si l'ensemble des commande ou le script tente d'afficher des informations sur la sortie standard, la sortie sera envoyée par courrier électronique à l'utilisateur.
Pour afficher la liste des tâches en attente, utilisez la commande
atq
. Veuillez consulter la Section 21.2.5, « Afficher les tâches en attente » pour obtenir davantage d'informations.
Vous pouvez également limiter l'utilisation de la commande
at
. Pour obtenir davantage d'informations, veuillez consulter la Section 21.2.7, « Contrôle de l'accès à « At » et « Batch » ».
21.2.4. Configurer une tâche « Batch »
L'application Batch exécute des tâches ponctuelles définies lorsque la charge moyenne du système passe en-dessous de 0.8.
Pour définir une tâche « Batch », veuillez procéder comme suit :
- Sur la ligne de commande, saisir la commande
batch
. - Définissez les commandes de la tâche dans l'invite
at>
affichée :- Veuillez saisir la commande que la tâche devra exécuter et appuyez sur Entrée. Optionnellement, répétez l'étape pour fournir des commandes multiples.
- Saisissez un script shell à l'invite et appuyez sur Entrée après chaque ligne du script.Si un script est saisi, la tâche utilise l'ensemble du shell dans l'environnement
SHELL
de l'utilisateur, le shell de connexion de l'utilisateur, ou/bin/sh
(en fonction de ce qui est trouvé en premier).
- Une fois terminé, veuillez appuyer sur Ctrl+D sur une ligne vide pour sortir de l'invite de commande.
Si l'ensemble des commande ou le script tente d'afficher des informations sur la sortie standard, la sortie sera envoyée par courrier électronique à l'utilisateur.
Pour afficher la liste des tâches en attente, utilisez la commande
atq
. Veuillez consulter la Section 21.2.5, « Afficher les tâches en attente » pour obtenir davantage d'informations.
Vous pouvez également limiter l'utilisation de la commande
batch
. Pour obtenir davantage d'informations, veuillez consulter la Section 21.2.7, « Contrôle de l'accès à « At » et « Batch » ».
21.2.5. Afficher les tâches en attente
Pour afficher les tâches
At
et Batch
en attente, exécutez la commande atq
. La commande atq
affiche une liste des tâches en attente, avec chaque tâche sur une ligne séparée. Chaque ligne suit le numéro de la tâche, la date, l'heure, la classe de la tâche, et le format du nom d'utilisateur. Les utilisateur peuvent uniquement afficher leurs propres tâches. Si l'utilisateur root
exécute la commande atq
, toutes les tâches de tous les utilisateurs seront affichées.
21.2.6. Options de ligne de commande supplémentaires
Les options de ligne de commande supplémentaires des commandes
at
et batch
incluent :
Option | Description |
---|---|
-f | Lit les commandes ou le script shell depuis un fichier au lieu de les spécifier à l'invite de commande. |
-m | Envoie un courrier électronique à l'utilisateur une fois la tâche accomplie. |
-v | Affiche l'heure à laquelle la tâche sera exécutée. |
21.2.7. Contrôle de l'accès à « At » et « Batch »
Vous pouvez restreindre l'accès aux commandes
at
et batch
à l'aide des fichiers /etc/at.allow
et /etc/at.deny
. Ces fichiers de contrôle d'accès utilisent le même format en définissant un nom d'utilisateur sur chaque ligne. N'oubliez pas que les espaces ne sont pas autorisés dans ces fichiers.
Si le fichier
at.allow
existe, seuls les utilisateurs répertoriés dans celui-ci seront autorisés à utiliser at
ou batch
, et le fichier at.deny
sera ignoré.
Si le fichier
at.allow
n'existe pas, les utilisateurs répertoriés dans le fichier at.deny
ne seront pas autorisés à utiliser at
ou batch
.
Le démon
at
(atd
) n'a pas besoin d'être redémarré si les fichiers de contrôle d'accès sont modifiés. Les fichiers de contrôle d'accès sont lus chaque fois qu'un utilisateur tente d'exécuter les commandes at
ou batch
.
L'utilisateur
root
peut toujours exécuter les commandes at
et batch
, indépendamment du contenu des fichiers de contrôle d'accès.