JavaScript is required to for searching.
Navigationslinks überspringen
Druckansicht beenden
SystemAdministrationshandbuch: Oracle Solaris Container - RessourcenAdministration und Solaris Zones     Oracle Solaris 10 1/13 Information Library (Deutsch)
search filter icon
search icon

Dokumentinformationen

Vorwort

Teil I Ressourcenmanagement

1.  Einführung in Solaris 10-RessourcenAdministration

2.  Einführung in Projekte und Aufgaben

3.  Verwalten von Projekten und Aufgaben (Vorgehen)

4.  Einführung in das Extended Accounting

5.  Verwalten des Extended Accounting (Vorgehen)

Verwalten des Extended Accounting (Übersicht der Schritte)

Verwenden des Extended Accounting

So aktivieren Sie das Extended Accounting für Prozesse, Aufgaben und Flows

So aktivieren Sie das Extended Accounting mit einem Startskript

So zeigen Sie den Extended Accounting-Status an

So zeigen Sie die verfügbaren Accounting-Ressourcen an

So deaktivieren Sie das Prozess-, Aufgaben- und Flow-Accounting

Verwenden der Perl-Schnittstelle für libexacct

So drucken Sie rekursiv den Inhalt eines exacct-Objekts

So erstellen Sie einen neuen Gruppendatensatz und schreiben ihn in eine Datei

So drucken Sie den Inhalt einer exacct-Datei

Beispiel einer Ausgabe von Sun::Solaris::Exacct::Object->dump()

6.  Einführung in die Resource Controls

7.  Verwalten von Resource Controls (Vorgehen)

8.  Einführung in den Fair Share Scheduler

9.  Verwalten des Fair Share Scheduler (Vorgehen)

10.  Einführung in die Steuerung des reellen Arbeitsspeichers mithilfe des Resource Capping Daemons

11.  Verwalten des Resource Capping Daemons (Vorgehen)

12.  Einführung in Resource Pools

13.  Erstellen und Verwalten von Resource Pools (Vorgehen)

14.  Beispiel für die Konfiguration der RessourcenAdministration

15.  Resource Controls in der Solaris Management-Konsole

Teil II Zonen

16.  Einführung in Solaris Zones

17.  Einführung in die Konfiguration einer nicht-globalen Zone

18.  Planen und Konfigurieren von nicht-globalen Zonen (Vorgehen)

19.  Einführung in das Installieren, Anhalten, Klonen und Deinstallieren von nicht-globalen Zonen

20.  Installieren, Booten, Anhalten, Deinstallieren und Klonen von nicht-globalen Zonen (Vorgehen)

21.  Einführung in das Anmeldeverfahren bei einer nicht-globalen Zone

22.  Anmelden bei nicht-globalen Zonen (Vorgehen)

23.  Verschieben und Migrieren von nicht-globalen Zonen (Vorgehen)

24.  Oracle Solaris 10 9/10: Migrieren eines reellen Oracle Solaris-Systems in eine Zone (Aufgaben)

25.  Informationen zu den Paketen und Patches auf einem Oracle Solaris-System mit installierten Zonen (Überblick)

26.  Hinzufügen und Entfernen von Paketen und Patches auf einem Oracle Solaris-System mit installierten Zonen (Aufgaben)

27.  Verwaltung der Oracle Solaris-Zonen (Überblick)

28.  Verwaltung der Oracle Solaris-Zonen (Aufgaben)

29.  Aktualisieren eines Oracle Solaris 10-Systems mit installierten nicht-globalen Zonen

30.  Behebung von verschiedenen Problemen mit Oracle Solaris Zones

Teil III lx Branded Zones

31.  Allgemeine Informationen zu Branded Zones und der Linux Branded Zone

32.  Einführung in die Planung der Konfiguration einer lx Branded Zone

33.  Konfigurieren einer lx Branded Zone (Vorgehen)

34.  Einführung in das Installieren, Booten, Anhalten, Klonen und Deinstallieren von lx Branded Zones

35.  Installieren, Booten, Anhalten, Deinstallieren und Klonen von lx Branded Zones (Vorgehen)

36.  Anmelden bei lx Branded Zones (Vorgehen)

37.  Verschieben und Migrieren von lx Branded Zones (Vorgehen)

38.  Verwalten und Ausführen von Anwendungen in lx Branded Zones (Vorgehen)

Glossar

Index

Verwenden der Perl-Schnittstelle für libexacct

So drucken Sie rekursiv den Inhalt eines exacct-Objekts

Mit dem folgenden Code drucken Sie rekursiv den Inhalt eines exacct-Objekts. Diese Eigenschaft wird von der Bibliothek als Funktion Sun::Solaris::Exacct::Object::dump() bereitgestellt. Diese Eigenschaft ist auch über die Convenience-Funktion ea_dump_object() verfügbar.

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);
             }
     }

So erstellen Sie einen neuen Gruppendatensatz und schreiben ihn in eine Datei

Mit dem folgenden Skript erstellen Sie einen neuen Gruppendatensatz und schreiben ihn in eine Datei namens /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;

So drucken Sie den Inhalt einer exacct-Datei

Mit dem folgenden Perl-Skript drucken Sie den Inhalt einer exacct-Datei.

#!/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);

Beispiel einer Ausgabe von Sun::Solaris::Exacct::Object->dump()

Das Folgende ist ein Beispiel für eine Ausgabe, die durch das Ausführen von Sun::Solaris::Exacct::Object->dump() an der Datei erzeugt wird, die unter So erstellen Sie einen neuen Gruppendatensatz und schreiben ihn in eine Datei erstellt wurde.

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