at, batch, atq, atrm - Mémoriser, examiner ou supprimer des jobs à exécuter ultérieurement.
at
et
batch
lisent, depuis l'entrée standard, ou depuis un fichier, des commandes
qu'ils exécuteront ultérieurement, en utilisant le shell indiqué dans
la variable d'environnement
SHELL,
le shell de connexion de l'utilisateur, ou en dernier ressort
/bin/sh.
- at
-
lance les commandes indiquées à une heure précise.
- atq
-
affiche la liste des commandes en attente d'exécution pour l'utilisateur
appelant, sauf s'il s'agit du Super-Utilisateur auquel cas toutes les
commandes en attente sont listées. Le format de sortie est (une ligne par
job) : numéro de job, date, heure, classe.
- atrm
-
efface les travaux en attente, identifiés par leurs numéros de job.
- batch
-
exécute les commandes indiquées lorsque la charge système le permet,
c'est à dire lorsque la charge du processeur descend sous 0.8, ou
en dessous d'une valeur mentionnée explicitement durant l'invocation de
atrun.
At
permet d'indiquer l'heure de lancement de manière assez complexe, en
extension du standard POSIX.2. Il accepte des spécifications de la forme
HH:MM
pour exécuter un travail à une heure donnée de la journée en cours (ou
du lendemain si l'heure mentionnée est déjà dépassée).
On peut aussi lui fournir l'un des arguments suivants :
midnight (minuit),
noon (midi),
ou
teatime (l'heure du thé, soit 16 heures).
Il est également possible de fournir un suffixe du type
AM (matin),
ou
PM (après-midi)
avec une heure sur un cadran de 12 heures.
On peut indiquer le jour de lancement, en précisant une date
du type
nom-du-mois (en anglais)
jour
et éventuellement
année,
ou encore une date du type
MMJJAA
ou
MM/JJ/AA
ou
JJ.MM.AA.
La date
doit
suivre l'heure.
On peut indiquer une heure de la forme
now(maintenant)
+
nombre
d'
unités,
où les unités peuvent être
minutes,
hours,
days (jours),
ou
weeks (semaines)
et on peut également demander à
at
de déclencher le travail le jour même en ajoutant le suffixe
today
ou le lendemain en ajoutant
tomorrow.
Par exemple, pour lancer une commande à 16 heures, 3 jours plus tard,
on peut indiquer
at 4pm + 3 days,
pour lancer le travail à 10 heures du matin le 31 Juillet, il faut invoquer
at 10am Jul 31
et pour lancer une commande à 1 heure du matin le lendemain, effectuez
at 1am tomorrow.
/usr/share/doc/at-3.1.8/timespec
contient les définitions exactes des spécifications horaires.
Aussi bien
at que
batch
lisent les commandes à mémoriser depuis l'entrée standard, ou dans le
fichier indiqué par l'option
-f.
Le répertoire de travail, l'environnement (sauf pour les variables
TERM,
DISPLAY
et
_)
ainsi que le
umask sont mémorisés au moment de l'invocation.
Une commande
at -
ou
batch -
invoquée depuis un shell obtenu par
su(1)
mémorisera l'U-ID en cours.
L'appelant recevra par courrier (mail) les messages écrits sur les flux de
sortie standard et d'erreur standard, s'il y en a.
Le courrier sera envoyé en utilisant la commande
/usr/sbin/sendmail.
Si
at
est invoquée depuis un shell obtenu par
su(1),
le courrier sera envoyé à l'utilisateur correspondant au login.
Le Super-Utilisateur peut toujours employer ces commandes. Pour les
autres utilisateurs, les permissions sont déterminées
par les fichiers
/etc/at.allow
et
/etc/at.deny.
Si le fichier
/etc/at.allow
existe, seuls les utilisateurs dont les noms sont mentionnés dans
ce fichier peuvent utiliser
at.
Si
/etc/at.allow
n'existe pas,
at vérifie si
/etc/at.deny
existe, et tous les utilisateurs non-mentionnés dans ce fichier ont
le droit d'invoquer
at.
Si aucun de ces deux fichiers n'existe, seul le Super-utilisateur a
le droit d'appeler
at.
Un fichier
/etc/at.deny
vide signifie que tous les utilisateurs ont le droit d'appeler ces
commandes, c'est la configuration par défaut.
Christophe Blaess, 1997-2003.