Go to main content
Guide d'administration des systèmes Oracle® ZFS Storage Appliance, version OS8.6.x

Quitter la vue de l'impression

Mis à jour : Septembre 2016
 
 

Contextes de la CLI

Le contexte dans lequel les commandes sont exécutées constitue l'un des principes fondamentaux de la CLI. Le contexte détermine les éléments du système pouvant être gérés et les commandes disponibles. Les contextes ont une structure en arborescence dans laquelle les contextes peuvent à leur tour contenir des contextes imbriqués. La structure reflète généralement celle des vues de la BUI.

Le contexte initial au moment de la connexion est le contexte root, qui fait office de parent ou d'ancêtre pour tous les contextes. Pour accéder à un contexte, exécutez le nom du contexte en tant que commande. Par exemple, les fonctions disponibles dans la vue Configuration du navigateur sont disponibles dans le contexte configuration de la CLI. Dans le contexte root, vous pouvez y accéder en saisissant directement ce qui suit :

dory:> configuration
dory:configuration> 

Notez que l'invite change pour refléter le contexte, le contexte s'affichant entre le caractère deux-points et le caractère supérieur à dans l'invite.

La commande show affiche les contextes enfant. Par exemple, depuis le contexte configuration :

dory:configuration> show
Children:
                             net => Configure networking
                        services => Configure services
                         version => Display system version
                           users => Configure administrative users
                           roles => Configure administrative roles
                     preferences => Configure user preferences
                          alerts => Configure alerts
                         storage => Configure Storage

Ces contextes enfant correspondent aux vues disponibles sous la vue Configuration dans le navigateur, notamment Réseau, Services et utilisateurs, Préférences, etc. Pour sélectionner l'un de ces contextes enfant, saisissez son nom :

dory:configuration> preferences 
dory:configuration preferences> 

Accédez directement à un contexte subordonné à partir d'un ancêtre en indiquant les contextes intermédiaires, séparés par des espaces. Par exemple, pour accéder directement à configuration preferences à partir du contexte root, saisissez simplement :

dory:> configuration preferences
dory:configuration preferences>

Certains contextes enfant sont dynamiques, au sens où ils ne correspondent pas à des vues figées dans le navigateur, mais à des entités dynamiques créées par l'utilisateur ou le système. Il existe deux façons d'accéder à ces contextes : vous pouvez utiliser la commande select suivie du nom du contenu dynamique, ou vous pouvez placer le nom du contexte dynamique entre guillemets. La commande list permet d'afficher les noms des contextes dynamiques compris dans un contexte donné. Par exemple, le contexte users est un contexte statique, mais chaque utilisateur constitue un contexte dynamique pour lui-même.

dory:> configuration users
dory:configuration users> list 
NAME                     USERNAME                 UID        TYPE
John Doe                 bmc                      12345      Dir
Super-User               root                     0          Loc

Pour sélectionner l'utilisateur nommé bmc, émettez la commande select bmc ou "bmc" :

dory:configuration users> "bmc" 
dory:configuration users bmc> 

Dans certains contextes, il est également possible d'utiliser les guillemets, ainsi que les commandes select et destroy pour sélectionner une entité en fonction de ses propriétés. La commande suivante peut par exemple être exécutée pour sélectionner des entrées de journal émises par le module reboot dans le contexte maintenance logs system :

dory:maintenance logs system> select module=reboot 
dory:maintenance logs system entry-034> show
Properties:                                   
  timestamp = 2010-8-14 06:24:41
     module = reboot
   priority = crit
       text = initiated by root on /dev/console syslogd: going down on signal 15

A l'instar d'autres commandes, la commande select ou les guillemets peuvent être associés à des commandes entraînant un changement de contexte. Par exemple, pour sélectionner l'utilisateur nommé bmc à partir du contexte root :

dory:> configuration users select bmc 
dory:configuration users bmc>

La commande last permet d'accéder directement à un contexte sélectionné ou créé précédemment. L'exemple suivant crée une action de réplication, puis exécute les commandes last et get id pour récupérer l'ID de l'action de réplication. Ensuite, une action différente est sélectionnée et les commandes last et get id permettent de récupérer l'ID de la dernière action de réplication visitée.

Avec la commande last, vous pouvez retourner au dernier noeud visité :

dory:configuration net interfaces> "igb4"
dory:configuration net interfaces igb4> done
dory:configuration net interfaces> last
net:configuration net interfaces igb4>

La commande last est aussi utile pour extraire des valeurs ayant été automatiquement définies par l'appareil pendant la création d'un noeud dynamique. Par exemple, chaque action de réplication se voit attribuer un ID par l'appareil lorsqu'elle est créée. En utilisant la commande last avec la commande get id, vous pouvez extraire l'ID sans utiliser le nom de l'action de réplication :

dory:shares p1/share replication> create
dory:shares p1/share action (uncommitted)> set target=dory
                               target = dory (uncommitted)
dory:shares p1/share action (uncommitted)> set pool=p0
                               pool = p0 (uncommitted)
dory:shares p1/share action (uncommitted)> commit
dory:shares p1/share replication> last get id
                               id = 7034367a-d4d8-e26f-fa93-c3b454e3b595
dory:shares p1/share replication>

Notez que quand last est combinée avec une autre commande (dans ce cas, get id), la commande est exécutée dans le contexte du dernier noeud visité, mais le noeud actuel reste inchangé.

Parce que last vous permet d'extraire le dernier noeud visité et ses valeurs sans spécifier le nom du noeud, cette commande est particulièrement pratique pour l'écriture de scripts :

script
              project = 'myproj';
              target = 'mytarget';
              target_pool = 'notmypool';
     
              run('cd /');
              run('shares select ' + project);
              run('replication');
              run('create');
              set('target', target);
              set('pool', target_pool);
              run('commit');
              run('last');
              id = get('id');
              printf("Sending update for replication action id %s ...", id);
              run('sendupdate');
              while (get('state') != 'idle') {
                     printf(".");
                     run('sleep 1');
              }
              printf("done\n");
 .

Pour revenir au contexte précédent, exécutez la commande done :

dory:configuration> done
dory:> 

Cela vous renvoie au contexte précédent, qui n'est pas nécessairement le contexte parent, comme suit :

dory:> configuration users select bmc 
dory:configuration users bmc> done
dory:> 

La commande done peut être utilisée à plusieurs reprises pour revenir à des contextes antérieurs :

dory:> configuration
dory:configuration> users 
dory:configuration users> select bmc 
dory:configuration users bmc> done
dory:configuration users> done
dory:configuration> done
dory:>

Pour accéder à un contexte parent, utilisez la commande cd. Inspirée de la commande UNIX classique, la commande cd suivie de l'argument ".." permet de revenir au contexte parent :

dory:> configuration users select bmc
dory:configuration users bmc> cd ..
dory:configuration users> 

Et, comme pour la commande UNIX, "cd /" permet d'accéder au contexte root :

dory:> configuration
dory:configuration> users 
dory:configuration users> select bmc 
dory:configuration users bmc> cd /
dory:>

De même, toujours à l'instar de la commande UNIX, "cd ../.." permet d'accéder au contexte grand-parent :

dory:> configuration
dory:configuration> users 
dory:configuration users> select bmc 
dory:configuration users bmc> cd ../..
dory:configuration>

Les noms des contextes prennent en charge la saisie semi-automatique par tabulation, qu'il s'agisse des contextes statiques (saisie semi-automatique normale basée sur la commande) ou des contextes dynamiques (saisie semi-automatique basée sur la commande select). L'exemple suivant indique comment sélectionner l'utilisateur nommé bmc à partir du contexte root en quinze frappes seulement, au lieu des trente et une normalement requises sans saisie semi-automatique par tabulation :

dory:> configtab 
dory:> configuration utab 
dory:> configuration users setab 
dory:> configuration users select tab 
bmc   root  
dory:> configuration users select btab 
dory:> configuration users select bmcenter 
dory:configuration users bmc>

Lorsque vous vous trouvez dans un contexte, exécutez des commandes spécifiques au contexte. Par exemple, pour obtenir les préférences de l'utilisateur actuel, exécutez la commande get dans le contexte configuration preferences :

dory:configuration preferences> get
                       locale = C
                 login_screen = status/dashboard
              session_timeout = 15
           session_annotation = 
           advanced_analytics = false

Si une commande est suivie d'une entrée entraînant un changement de contexte, la commande concernée est exécutée dans le contexte cible, mais le contrôle revient au contexte appelant. Par exemple, pour obtenir les préférences à partir du contexte root sans modifier le contexte, ajoutez la commande get aux commandes de navigation du contexte :

dory:> configuration preferences get 
                       locale = C
                 login_screen = status/dashboard
              session_timeout = 15
           session_annotation = 
           advanced_analytics = false

Lors de la création d'une nouvelle entité dans le système, le contexte associé à la nouvelle entité est fréquemment créé avec l'état uncommitted ("non validé"). Vous pouvez par exemple créer une alerte avec seuil en exécutant la commande create à partir du contexte configuration alerts threshold :

dory:> configuration alerts thresholds create 
dory:configuration alerts threshold (uncommitted)>

La mention (uncommitted) dans l'invite indique qu'il s'agit d'un contexte non validé. Une entité non validée est validée via la commande commit. Toute tentative de quitter un contexte non validé déclenche l'affichage d'une invite de confirmation :

dory:configuration alerts threshold (uncommitted)> cd /
Leaving will abort creation of "threshold". Are you sure? (Y/N)

Lors de la validation d'une entité non validée, les propriétés associées à la nouvelle entité sont validées et une erreur est générée si l'entité ne peut pas être créée. Par exemple, la création d'une nouvelle alerte avec seuil nécessite la spécification d'un nom de statistique, sans quoi une erreur se produit :

dory:configuration alerts threshold (uncommitted)> commit
error: missing value for property "statname"

Pour résoudre ce problème, résolvez l'erreur et retentez la validation :

dory:configuration alerts threshold (uncommitted)> set statname=cpu.utilization  
                     statname = cpu.utilization (uncommitted)
dory:configuration alerts threshold (uncommitted)> commit
error: missing value for property "limit"
dory:configuration alerts threshold (uncommitted)> set limit=90
                        limit = 90 (uncommitted)
dory:configuration alerts threshold (uncommitted)> commit
dory:configuration alerts thresholds> list
THRESHOLD          LIMIT       TYPE STATNAME
threshold-000         90     normal cpu.utilization

Rubriques connexes