Gestion des informations système, des processus et des performances dans Oracle® Solaris 11.2

Quitter la vue de l'impression

Mis à jour : Septembre 2014
 
 

Planification d'une seule tâche système (at)

    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.

Soumission d'un fichier de travail at

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 :

  1. Appel de l'utilitaire at et choix de l'heure d'exécution de la commande.

  2. Saisie d'une commande ou d'un script à exécuter ultérieurement


    Remarque -  Si la sortie de cette commande ou de ce script est importante, veillez à la diriger vers un fichier à des fins d'examen ultérieur.

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

Création d'un travail at

La tâche suivante explique comment créer un travail at.

Création d'un travail at

  1. Lancez l'utilitaire at en spécifiant l'heure d'exécution du travail.
    $ at [-m] time [date] 
    -m

    Pour qu'il vous envoie un e-mail indique une fois le travail terminé.

    time

    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.

    date

    Indique au moins les trois premières lettres du mois, le jour de la semaine, ou les mots-clés today ou tomorrow.

  2. A l'invite at, saisissez les commandes ou scripts à exécuter, à raison d'un par ligne.

    Vous pouvez saisir plusieurs commandes en appuyant sur Entrée à la fin de chaque ligne.

  3. Appuyez sur Ctrl-D pour quitter l'utilitaire at et enregistrer le travail at.

    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.

Exemple 4-7  Création d'un travail 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

Affichage de la file d'attente at

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.

Vérification d'un travail at

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

Affichage des travaux at

Pour afficher des informations sur les heures d'exécution des travaux at, utilisez la commande at -l.

$ at -l [job-id]

–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 at

L'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

Suppression des travaux at

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.

  1. Supprimez le travail at de la file d'attente avant qu'il soit exécuté.
    # at -r [job-id]

    où l'option –r job-id spécifie le numéro d'identification du travail à supprimer.

  2. Vérifiez que le travail at a bien été supprimé à l'aide de la commande at -l (ou atq).

    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]
Exemple 4-9  Suppression des travaux at

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

Contrôle de l'accès à la commande at

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.

Refus d'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
Vérification du refus d'accès à la commande at

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.