Les sections suivantes décrivent l'utilisation de la commande at pour réaliser les tâches suivantes :
Planification des travaux (commande et scripts) à exécuter ultérieurement
Permet d'afficher et d'enlever les ordres de fabrication
Contrôle de l'accès à la commande at
Par défaut, les utilisateurs peuvent créer, afficher et supprimer leurs propres fichiers de travaux at. Pour accéder aux fichiers at appartenant à root ou à d'autres utilisateurs, vous devez disposer des privilèges de superutilisateur.
Lorsque vous soumettez un travail at, un numéro d'identification suivi de l'extension .a lui est attribué. Cette désignation représente le nom de fichier du travail, ainsi que son numéro dans la file d'attente.
La soumission d'un fichier de travail at implique les étapes suivantes :
Appel de l'utilitaire at et choix de l'heure d'exécution de la commande.
Saisie d'une commande ou d'un script à exécuter ultérieurement
Par exemple, le travail at suivant supprime les fichiers noyau du compte d'utilisateur dubois vers minuit, le dernier jour de juillet.
$ at 11:45pm July 31 at> rm /home/smith/*core* at> Press Control-d commands will be executed using /bin/csh job 933486300.a at Tue Jul 31 23:45:00 2004
La tâche suivante explique comment créer un travail at.
$ at [-m] time [date]
Pour qu'il vous envoie un e-mail indique une fois le travail terminé.
Indique l'heure à laquelle vous souhaitez planifier le travail. Ajoutez am ou pm si vous ne spécifiez pas l'heure en fonction de l'horloge 24 heures. Les mots-clés acceptables sont midnight, noon et now. Les minutes sont facultatives.
Indique au moins les trois premières lettres du mois, le jour de la semaine, ou les mots-clés today ou tomorrow.
Vous pouvez saisir plusieurs commandes en appuyant sur Entrée à la fin de chaque ligne.
Un numéro de file d'attente, qui désigne également le nom de fichier du travail, est attribué au travail at. Ce numéro est affiché lorsque vous quittez l'utilitaire at.
L'exemple suivant montre le travail at créé par l'utilisateur jones pour supprimer ses fichiers de sauvegarde à 19h30. Elle a utilisé l'option –m de manière à recevoir un e-mail une fois le travail terminé.
$ at -m 1930 at> rm /home/jones/*.backup at> Press Control-D job 897355800.a at Thu Jul 12 19:30:00 2004
Elle a reçu un e-mail de confirmation de l'exécution de son travail at.
Your “at” job “rm /home/jones/*.backup” completed.
L'exemple suivant montre comment jones a planifié un grand travail at pour 4h00 samedi matin. La sortie du travail a été dirigée vers un fichier nommé big.file.
$ at 4 am Saturday at> sort -r /usr/dict/words > /export/home/jones/big.file
Pour vérifier vos travaux en attente dans la file d'attente at, utilisez la commande atq.
$ atq
Cette commande affiche les informations d'état sur les travaux at créés.
Pour vérifier la création d'un travail at, utilisez la commande atq. Dans l'exemple suivant, la commande atq confirme que les travaux at qui appartiennent à jones ont été soumis à la file d'attente.
$ atq Rank Execution Date Owner Job Queue Job Name 1st Jul 12, 2004 19:30 jones 897355800.a a stdin 2nd Jul 14, 2004 23:45 jones 897543900.a a stdin 3rd Jul 17, 2004 04:00 jones 897732000.a a stdin
Pour afficher des informations sur les heures d'exécution des travaux at, utilisez la commande at -l.
$ at -l [job-id]
où –l job-id est le numéro d'identification optionnel d'un travail particulier dont vous souhaitez afficher l'état. Le système sans être associé à un ID, la commande affiche le statut de tous les travaux soumis par un utilisateur.
Exemple 4-8 Affichage des travaux atL'exemple suivant illustre la sortie de la commande at -l, qui fournit des informations sur l'état de tous les travaux soumis par un utilisateur.
$ at -l 897543900.a Sat Jul 14 23:45:00 2004 897355800.a Thu Jul 12 19:30:00 2004 897732000.a Tue Jul 17 04:00:00 2004
L'exemple suivant illustre la sortie affichée lorsqu'un seul travail est spécifié avec la commande at -l.
$ at -l 897732000.a 897732000.a Tue Jul 17 04:00:00 2004
Avant de commencer
Prenez le rôle root pour supprimer un travail at appartenant à root ou à un autre utilisateur. Reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .
Vous n'avez pas besoin de prendre le rôle root pour supprimer votre propre travail at.
# at -r [job-id]
où l'option –r job-id spécifie le numéro d'identification du travail à supprimer.
La commande at -l affiche les travaux restants dans la file d'attente at. Le travail dont vous avez indiqué le numéro d'identification ne doit pas apparaître.
$ at -l [job-id]
Dans l'exemple suivant, un utilisateur souhaite supprimer un travail at dont l'exécution est planifiée à 4h00 le 7 juillet. Tout d'abord, l'utilisateur affiche la file d'attente at pour localiser le numéro d'identification du travail. Ensuite, il supprime ce travail de la file d'attente at. Enfin, il vérifie que le travail a bien été supprimé de la file d'attente.
$ at -l 897543900.a Sat Jul 14 23:45:00 2003 897355800.a Thu Jul 12 19:30:00 2003 897732000.a Tue Jul 17 04:00:00 2003 $ at -r 897732000.a $ at -l 897732000.a at: 858142000.a: No such file or directory
Vous pouvez configurer un fichier pour contrôler l'accès à la commande at, spécifiant les utilisateurs autorisés à créer et supprimer travaux at ou à afficher les informations sur leur file d'attente. Le fichier qui contrôle l'accès à la commande at , /etc/cron.d/at.deny, contient une liste de noms d'utilisateur, un par ligne. Les utilisateurs qui figurent dans ce fichier ne peuvent pas accéder aux commandes at.
Le fichier at.deny, créé pendant l'installation du logiciel Oracle Solaris, contient les noms d'utilisateur suivants :
daemon bin smtp nuucp listen nobody noaccess
Avec les privilèges de superutilisateur, vous pouvez modifier le fichier at.deny et y ajouter les noms des utilisateurs dont vous souhaitez restreindre l'accès à la commande at.
En tant qu'utilisateur root, modifiez le fichier /etc/cron.d/at.deny et ajoutez les noms d'utilisateur, un par ligne, auxsquels vous souhaitez refuser l'accès à la commande at.
daemon bin smtp nuucp listen nobody noaccess username1 username2 username3 . . .Exemple 4-10 Refus d'accès à at
L'exemple suivant montre un fichier at.deny modifié de sorte que les utilisateurs smith et jones n'ont pas accès à la commande at.
$ cat at.deny daemon bin smtp nuucp listen nobody noaccess jones smith
Pour vérifier si un nom d'utilisateur a bien été ajouté au fichier /etc/cron.d/at.deny, utilisez la commande at -l en étant connecté avec le compte utilisateur en question. Par exemple, si l'utilisateur connecté smith n'a pas accès à la commande at, le message suivant s'affiche :
# su smith Password: # at -l at: you are not authorized to use at. Sorry.
De même, si l'utilisateur tente de soumettre un travail at, le message suivant s'affiche :
# at 2:30pm at: you are not authorized to use at. Sorry.
Ce message confirme que l'utilisateur est répertorié dans le fichier at.deny.
Si l'accès à la commande at est autorisé, la commande at -l ne renvoie rien.