Go to main content

Guide d'administration d'Oracle® ZFS Storage Appliance, version OS8.8.x

Quitter la vue de l'impression

Mis à jour : Août 2021
 
 

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 :

hostname:> configuration
hostname: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 :

hostname: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, Utilisateurs, Préférences, etc. Pour sélectionner l'un de ces contextes enfant, saisissez son nom :

hostname:configuration> preferences
hostname: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 :

hostname:> configuration preferences
hostname: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.

hostname:> configuration users
hostname: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" :

hostname:configuration users> "bmc"
hostname: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 :

hostname:maintenance logs system> select module=reboot
hostname:maintenance logs system entry-034> show
Properties:                                   
  timestamp = 2019-10-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 :

hostname:> configuration users select bmc
hostname: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é :

hostname:configuration net interfaces> "igb4"
hostname:configuration net interfaces igb4> done
hostname:configuration net interfaces> last
hostname: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 :

hostname:shares p1/share replication> create
hostname:shares p1/share action (uncommitted)> set target=hostname
                               target = hostname (uncommitted)
hostname:shares p1/share action (uncommitted)> set pool=p0
                               pool = p0 (uncommitted)
hostname:shares p1/share action (uncommitted)> commit
hostname:shares p1/share replication> last get id
                               id = 7034367a-d4d8-e26f-fa93-c3b454e3b595
hostname: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 :

hostname:configuration> done
hostname:>

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

hostname:> configuration users select bmc
hostname:configuration users bmc> done
hostname:>

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

hostname:> configuration
hostname:configuration> users
hostname:configuration users> select bmc
hostname:configuration users bmc> done
hostname:configuration users> done
hostname:configuration> done
hostname:>

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 :

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

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

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

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

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

Notez que les commandes cd / et cd .. prennent en charge des variations limitées. Pour plus de polyvalence, utilisez les commandes top et up.

Utilisez la commande top pour accéder au contexte root :

hostname:> configuration
hostname:configuration> users
hostname:configuration users> select bmc
hostname:configuration users bmc> top
hostname:>

Utilisez la commande top suivie par un nom de contexte pour accéder directement au contexte root indiqué : Par exemple, pour passer directement du contexte configuration users au contexte configuration services, utilisez la commande top configuration services :

hostname:> configuration
hostname:configuration> users
hostname:configuration users> top configuration services
hostname:configuration services>

Lorsque la commande top est associée à un contexte particulier, la commande done peut être utilisée pour revenir au contexte avant l'exécution de la commande top. Dans l'exemple suivant, la première commande done retourne au contexte précédent. La deuxième commande done retourne au contexte avant la commande top. La troisième commande done retourne au contexte deux noeuds avant la commande top.

hostname:> maintenance system
hostname:maintenance system> updates
hostname:maintenance system updates> top configuration services
hostname:configuration services> ftp
hostname:configuration services ftp> done
hostname:configuration services> done
hostname:maintenance system updates> done
hostname:>

A l'instar de la commande cd .., la commande up peut être utilisée pour accéder au contexte parent :

hostname:> configuration
hostname:configuration> users
hostname:configuration users> select bmc
hostname:configuration users bmc> up
hostname:configuration users>

Vous pouvez également accéder à un contexte n noeuds à partir du contexte actuel en répétant la commande up n fois :

hostname:> configuration
hostname:configuration> users
hostname:configuration users> select bmc
hostname:configuration users bmc> up up
hostname:configuration>

Pour retourner à un contexte particulier relatif au contexte parent actuel, saisissez le nom du contexte après la commande up. Aussi, utilisez la commande up up suivie par un nom de contexte pour retourner à un contexte particulier relatif au contexte grand-parent actuel. Par exemple, pour passer du contexte configuration users bmc au contexte configuration services, utilisez la commande up up services :

hostname:> configuration
hostname:configuration> users
hostname:configuration users> select bmc
hostname:configuration users bmc> up up services
hostname:configuration services>

Lorsque la commande up est associée à un contexte particulier, la commande done peut être utilisée pour revenir au contexte avant l'exécution de la commande up. Dans l'exemple suivant, la première commande done retourne au contexte avant la commande up. La deuxième commande done retourne au contexte deux noeuds avant la commande up et la troisième commande done retourne au contexte trois noeuds avant la commande up.

hostname:> configuration
hostname:configuration> services
hostname:configuration services> ftp
hostname:configuration services ftp> up http
hostname:configuration services http> done
hostname:configuration services ftp> done
hostname:configuration services> done
hostname:configuration> done
hostname:>

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 :

hostname:> configtab
hostname:> configuration utab
hostname:> configuration users setab
hostname:> configuration users select tab
bmc   root
hostname:> configuration users select btab
hostname:> configuration users select bmcenter
hostname: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 :

hostname: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 :

hostname:> 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 :

hostname:> configuration alerts thresholds create
hostname: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 :

hostname: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 :

hostname: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 :

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

Rubriques connexes