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
 
 

Utilisation de la fonction get

La fonction run est suffisamment puissante pour que l'utilisateur soit tenté de s'appuyer exclusivement sur l'analyse des sorties afin d'obtenir des informations sur le système. Son indéniable inconvénient est que les scripts correspondants analysent des sorties lisibles à l'oeil qui sont susceptibles de changer à l'avenir. Pour collecter des informations sur le système de manière plus fiable, servez-vous de la fonction get intégrée. Dans le cas de la propriété boot_time, cette fonction renvoie l'objet Date d'ECMAScript plutôt que la chaîne, et permet ainsi la manipulation par programmation de cette valeur de propriété. Pour obtenir des valeurs scriptables plus fiables, reportez-vous à la section Utilisation de la fonction prop.

  1. Par exemple, vous pouvez souhaiter utiliser la propriété boot_time conjointement avec l'heure actuelle pour déterminer la durée écoulée depuis l'initialisation :
    script
           run('configuration version');
           now = new Date();
           uptime = (now.valueOf() - get('boot_time').valueOf()) / 1000;
           printf('up %d day%s, %d hour%s, %d minute%s, %d second%s\n',
               d = uptime / 86400, d < 1 || d >= 2 ? 's' : '',
               h = (uptime / 3600) % 24, h < 1 || h >= 2 ? 's': '',
               m = (uptime / 60) % 60, m < 1 || m >= 2 ? 's': '',
               s = uptime % 60, s < 1 || s >= 2 ? 's': '');
  2. En supposant que le script ci-dessus est enregistré dans un fichier uptime.aksh, vous pouvez l'exécuter de la manière suivante :
    $ ssh root@hostname < uptime.aksh
    Pseudo-terminal will not be allocated because stdin is not a terminal.
    Password:
    up 2 days, 10 hours, 47 minutes, 48 seconds

    Le message concernant l'allocation d'un pseudo-terminal est dû au client SSH ; le problème correspondant peut être résolu en spécifiant l'option –T pour SSH.