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
 
 

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é.

  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@dory < 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 du au client ssh ; le problème correspondant peut être résolu en spécifiant l'option "-T" pour ssh.