JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Administración de Oracle Solaris 11.1: zonas de Oracle Solaris, zonas de Oracle Solaris 10 y gestión de recursos     Oracle Solaris 11.1 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

Parte I Gestión de recursos de Oracle Solaris

1.  Introducción a la gestión de recursos

2.  Proyectos y tareas (información general)

3.  Administración de proyectos y tareas

4.  Contabilidad ampliada (descripción general)

5.  Administración de contabilidad ampliada (tareas)

Administración de la función de contabilidad ampliada (mapa de tareas)

Uso de funciones de cuentas extendidas

Cómo activar la contabilidad ampliada para los flujos, los procesos, las tareas y los componentes de red

Cómo mostrar el estado de la contabilidad ampliada

Cómo ver los recursos de cuentas disponibles

Cómo desactivar la contabilidad de procesos, tareas, flujos y gestión de redes

Uso de la interfaz de Perl para libexacct

Cómo imprimir de forma recurrente el contenido de un objeto exacct

Cómo crear un registro de grupo y guardarlo en un archivo

Cómo imprimir el contenido de un archivo exacct

Ejemplo de salida de Sun::Solaris::Exacct::Object->dump()

6.  Controles de recursos (descripción general)

7.  Administración de controles de recursos (tareas)

8.  Programador de reparto justo (descripción general)

9.  Administración del programador de reparto justo (tareas)

10.  Control de memoria física utilizando el daemon de límite de recursos (descripción general)

11.  Administración del daemon de límite de recursos (tareas)

12.  Agrupaciones de recursos (descripción general)

13.  Creación y administración de agrupaciones de recursos (tareas)

14.  Ejemplo de configuración de administración de recursos

Parte II Zonas de Oracle Solaris

15.  Introducción a Zonas de Oracle Solaris

16.  Configuración de zonas no globales (descripción general)

17.  Planificación y configuración de zonas no globales (tareas)

18.  Acerca de la instalación, el cierre, la detención, la desinstalación y la clonación de zonas no globales (descripción general)

19.  Cómo instalar, iniciar, cerrar, detener, desinstalar y clonar zonas no globales (tareas)

20.  Inicio de sesión en zonas no globales (descripción general)

21.  Registro en zonas no globales (tareas)

22.  Acerca de migraciones de zonas y la herramienta zonep2vchk

23.  Migración de sistemas Oracle Solaris y migración de zonas no globales (tareas)

24.  Acerca de la instalación automática y los paquetes de un sistema Oracle Solaris 11.1 con zonas instaladas

25.  Administración de zonas de Oracle Solaris (descripción general)

26.  Administración de zonas de Oracle Solaris (tareas)

27.  Configuración y administración de zonas inmutables

28.  Resolución de problemas relativos a las zonas de Oracle Solaris

Parte III Zonas de Oracle Solaris 10

29.  Introducción a las zonas de Oracle Solaris 10

30.  Evaluación de un sistema Oracle Solaris 10 y creación de un archivo

31.  (Opcional) Migración de una zona no global native de Oracle Solaris 10 a una zona de Oracle Solaris 10

32.  Configuración de la zona con marca solaris10

33.  Instalación de zona con marca solaris10

34.  Inicio de una zona, inicio de sesión y migración de zona

Glosario

Índice

Uso de la interfaz de Perl para libexacct

Cómo imprimir de forma recurrente el contenido de un objeto exacct

Utilice el código siguiente para imprimir de forma recurrente el contenido de un objeto exacct. Tenga en cuenta que esta función la proporciona la biblioteca como función de Sun::Solaris::Exacct::Object::dump(). Esta función también está disponible mediante la función de conveniencia ea_dump_object().

sub dump_object
     {
             my ($obj, $indent) = @_;
             my $istr = '  ' x $indent;

             #
             # Retrieve the catalog tag.  Because we are 
             # doing this in an array context, the
             # catalog tag will be returned as a (type, catalog, id) 
             # triplet, where each member of the triplet will behave as 
             # an integer or a string, depending on context.
             # If instead this next line provided a scalar context, e.g.
             #    my $cat  = $obj->catalog()->value();
             # then $cat would be set to the integer value of the 
             # catalog tag.
             #
             my @cat = $obj->catalog()->value();

             #
             # If the object is a plain item
             #
             if ($obj->type() == &EO_ITEM) {
                     #
                     # Note: The '%s' formats provide s string context, so
                     # the components of the catalog tag will be displayed
                     # as the symbolic values. If we changed the '%s'
                     # formats to '%d', the numeric value of the components
                     # would be displayed.
                     #
                     printf("%sITEM\n%s  Catalog = %s|%s|%s\n", 
                        $istr, $istr, @cat);
                     $indent++;

                     #
                     # Retrieve the value of the item.  If the item contains
                     # in turn a nested exacct object (i.e., an item or
                     # group),then the value method will return a reference
                     # to the appropriate sort of perl object
                     # (Exacct::Object::Item or Exacct::Object::Group).
                     # We could of course figure out that the item contained
                     # a nested item orgroup by examining the catalog tag in
                     # @cat and looking for a type of EXT_EXACCT_OBJECT or
                     # EXT_GROUP.
                     #
                     my $val = $obj->value();
                     if (ref($val)) {
                             # If it is a nested object, recurse to dump it.
                             dump_object($val, $indent);
                     } else {
                             # Otherwise it is just a 'plain' value, so
                             # display it.
                             printf("%s  Value = %s\n", $istr, $val);
                     }

             #
             # Otherwise we know we are dealing with a group.  Groups
             # represent contents as a perl list or array (depending on
             # context), so we can process the contents of the group
             # with a 'foreach' loop, which provides a list context.
             # In a list context the value method returns the content
             # of the group as a perl list, which is the quickest
             # mechanism, but doesn't allow the group to be modified.
             # If we wanted to modify the contents of the group we could
             # do so like this:
             #    my $grp = $obj->value();   # Returns an array reference
             #    $grp->[0] = $newitem;
             # but accessing the group elements this way is much slower.
             #
             } else {
                     printf("%sGROUP\n%s  Catalog = %s|%s|%s\n",
                         $istr, $istr, @cat);
                     $indent++;
                     # 'foreach' provides a list context.
                     foreach my $val ($obj->value()) {
                             dump_object($val, $indent);
                     }
                     printf("%sENDGROUP\n", $istr);
             }
     }

Cómo crear un registro de grupo y guardarlo en un archivo

Utilice esta secuencia de comandos para crear un registro de grupos y guardarlo en un archivo denominado /tmp/exacct.

#!/usr/bin/perl

use strict;
use warnings;
use Sun::Solaris::Exacct qw(:EXACCT_ALL);
# Prototype list of catalog tags and values.
     my @items = (
             [ &EXT_STRING | &EXC_DEFAULT | &EXD_CREATOR      => "me"       ],
             [ &EXT_UINT32 | &EXC_DEFAULT | &EXD_PROC_PID     => $$         ],
             [ &EXT_UINT32 | &EXC_DEFAULT | &EXD_PROC_UID     => $<         ],
             [ &EXT_UINT32 | &EXC_DEFAULT | &EXD_PROC_GID     => $(         ],
             [ &EXT_STRING | &EXC_DEFAULT | &EXD_PROC_COMMAND => "/bin/rec" ],
     );

     # Create a new group catalog object.
     my $cat = ea_new_catalog(&EXT_GROUP | &EXC_DEFAULT | &EXD_NONE)

     # Create a new Group object and retrieve its data array.
     my $group = ea_new_group($cat);
     my $ary = $group->value();

     # Push the new Items onto the Group array.
     foreach my $v (@items) {
             push(@$ary, ea_new_item(ea_new_catalog($v->[0]), $v->[1]));
     }

     # Open the exacct file, write the record & close.
     my $f = ea_new_file('/tmp/exacct', &O_RDWR | &O_CREAT | &O_TRUNC)
        || die("create /tmp/exacct failed: ", ea_error_str(), "\n");
     $f->write($group);
     $f = undef;

Cómo imprimir el contenido de un archivo exacct

Utilice la siguiente secuencia de comandos Perl para imprimir el contenido de un archivo exacct.

#!/usr/bin/perl

     use strict;
     use warnings;
     use Sun::Solaris::Exacct qw(:EXACCT_ALL);

     die("Usage is dumpexacct <exacct file>\n") unless (@ARGV == 1);

     # Open the exacct file and display the header information.
     my $ef = ea_new_file($ARGV[0], &O_RDONLY) || die(error_str());
     printf("Creator:  %s\n", $ef->creator());
     printf("Hostname: %s\n\n", $ef->hostname());

     # Dump the file contents
     while (my $obj = $ef->get()) {
             ea_dump_object($obj);
     }

     # Report any errors
     if (ea_error() != EXR_OK && ea_error() != EXR_EOF)  {
             printf("\nERROR: %s\n", ea_error_str());
             exit(1);
     }
     exit(0);

Ejemplo de salida de Sun::Solaris::Exacct::Object->dump()

A continuación se incluye un ejemplo de salida al ejecutar Sun::Solaris::Exacct::Object->dump() en el archivo creado en Cómo crear un registro de grupo y guardarlo en un archivo.

Creator:  root
Hostname: localhost
GROUP
       Catalog = EXT_GROUP|EXC_DEFAULT|EXD_NONE
       ITEM
         Catalog = EXT_STRING|EXC_DEFAULT|EXD_CREATOR
         Value = me
       ITEM
         Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_PID
         Value = 845523
       ITEM
         Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_UID
         Value = 37845
       ITEM
         Catalog = EXT_UINT32|EXC_DEFAULT|EXD_PROC_GID
         Value = 10
       ITEM
         Catalog = EXT_STRING|EXC_DEFAULT|EXD_PROC_COMMAND
         Value = /bin/rec
ENDGROUP