JavaScript is required to for searching.
Omitir Vínculos de navegación
Salir de la Vista de impresión
Guía de administración de sistemas: administración de recursos y contenedores de Oracle Solaris y zonas de Oracle Solaris     Oracle Solaris 10 1/13 Information Library (Español)
search filter icon
search icon

Información del documento

Prefacio

Parte I Gestión de recursos

1.  Introducción a administración de recursos de Solaris 10

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 procesos, tareas y flujos

Como activar la contabilidad ampliada con una secuencia de comandos de inicio

Cómo mostrar el estado de la contabilidad ampliada

Cómo ver los recursos de cuentas disponibles

Cómo desactivar las cuentas de procesos, tareas y flujos

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

15.  Función de control de recursos en Solaris Management Console

Parte II Zonas

16.  Introducción a Solaris Zones

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

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

19.  Cómo instalar, detener, clonar y desinstalar zonas no globales (descripción general)

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

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

22.  Registro en zonas no globales (tareas)

23.  Movimiento y migración de zonas no globales (tareas)

24.  Oracle Solaris 10 9/10: migración de un sistema Oracle Solaris físico a una zona (tareas)

25.  Paquetes y parches en un sistema Oracle Solaris con zonas instaladas (descripción general)

26.  Cómo agregar y eliminar paquetes y parches en un sistema Oracle Solaris con zonas instaladas (tareas)

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

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

29.  Actualización de un sistema Oracle Solaris 10 con zonas no globales instaladas

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

Parte III Zonas con marca lx

31.  Zonas con marca y zona con marca Linux

32.  Planificación de la configuración de zonas con marca lx (descripción general)

33.  Configuración de las zonas con marca lx (tareas)

34.  Cómo instalar, iniciar, detener, clonar y desinstalar las zonas con marca lx (descripción general)

35.  Cómo instalar, iniciar, detener, desinstalar y clonar zonas con marca lx (tareas)

36.  Inicio de sesión en zonas con marca lx (tareas)

37.  Cómo mover y migrar zonas con marca lx (tareas)

38.  Administración y ejecución de aplicaciones en zonas con marca lx (tareas)

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 exact 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