JavaScript is required to for searching.
탐색 링크 건너뛰기
인쇄 보기 종료
시스템 관리 설명서: Oracle Solaris Containers-리소스 관리 및 Oracle Solaris 영역     Oracle Solaris 10 1/13 Information Library (한국어)
search filter icon
search icon

문서 정보

머리말

제1부리소스 관리

1.  Solaris 10 리소스 관리 소개

2.  프로젝트 및 작업(개요)

3.  프로젝트 및 작업 관리

4.  확장 계정(개요)

5.  확장 계정 관리(작업)

확장 계정 기능 관리(작업 맵)

확장 계정 기능 사용

프로세스, 작업 및 플로우에 대해 확장 계정을 활성화하는 방법

시작 스크립트로 확장 계정을 활성화하는 방법

확장 계정 상태를 표시하는 방법

사용 가능한 계정 리소스를 보는 방법

프로세스, 작업 및 플로우 계정을 비활성화하는 방법

libexacct에 대한 Perl 인터페이스 사용

exacct 객체의 내용을 반복적으로 인쇄하는 방법

새 그룹 레코드를 만들고 이를 파일에 쓰는 방법

exacct 파일의 내용을 인쇄하는 방법

Sun::Solaris::Exacct::Object->dump()의 출력 예

6.  리소스 제어(개요)

7.  리소스 제어 관리(작업)

8.  FSS(Fair Share Scheduler)(개요)

9.  FSS(Fair Share Scheduler) 관리(작업)

10.  리소스 상한값 지원 데몬을 사용한 물리적 메모리 제어(개요)

11.  리소스 상한값 지원 데몬 관리(작업)

12.  리소스 풀(개요)

13.  리소스 풀 만들기 및 관리(작업)

14.  리소스 관리 구성 예

15.  Solaris Management Console의 리소스 제어 기능

제2부영역

16.  Solaris 영역 소개

17.  비전역 영역 구성(개요)

18.  비전역 영역 계획 및 구성(작업)

19.  비전역 영역 설치, 정지, 복제 및 제거 정보(개요)

20.  비전역 영역 설치, 부트, 정지, 제거 및 복제(작업)

21.  비전역 영역 로그인(개요)

22.  비전역 영역에 로그인(작업)

23.  비전역 영역 이동 및 마이그레이션(작업)

24.  Oracle Solaris 10 9/10: 물리적 Oracle Solaris 시스템을 영역으로 마이그레이션(작업)

25.  영역이 설치된 Oracle Solaris 시스템의 패키지 및 패치 정보(개요)

26.  영역이 설치된 Oracle Solaris 시스템에서 패키지 및 패치 추가 및 제거(작업)

27.  Oracle Solaris 영역 관리(개요)

28.  Oracle Solaris 영역 관리(작업)

29.  비전역 영역이 설치된 Oracle Solaris 10 시스템 업그레이드

30.  그 밖의 기타 Oracle Solaris 영역 문제 해결

제3부lx 브랜드 영역

31.  브랜드 영역 및 Linux 브랜드 영역 정보

32.  lx 브랜드 영역 구성(개요)

33.  lx 브랜드 영역 구성(작업)

34.  lx 브랜드 영역 설치, 부트, 정지, 복제 및 제거 정보(개요)

35.  lx 브랜드 영역 설치, 부트, 정지, 제거 및 복제(작업)

36.  lx 브랜드 영역에 로그인(작업)

37.  lx 브랜드 영역 이동 및 마이그레이션(작업)

38.  lx 브랜드 영역에서 응용 프로그램 관리 및 실행(작업)

용어집

색인

libexacct에 대한 Perl 인터페이스 사용

exacct 객체의 내용을 반복적으로 인쇄하는 방법

다음 코드를 사용하여 exacct 객체의 내용을 반복적으로 인쇄할 수 있습니다. 이 기능은 라이브러리에서 Sun::Solaris::Exacct::Object::dump() 기능으로 제공됩니다. 또한 이 기능은 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);
             }
     }

새 그룹 레코드를 만들고 이를 파일에 쓰는 방법

이 스크립트를 사용하여 새 그룹 레코드를 만들고 이를 /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;

exacct 파일의 내용을 인쇄하는 방법

다음 Perl 스크립트를 사용하여 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);

Sun::Solaris::Exacct::Object->dump()의 출력 예

이 출력 예는 새 그룹 레코드를 만들고 이를 파일에 쓰는 방법에서 만든 파일에 대해 Sun::Solaris::Exacct::Object->dump()를 실행하여 생성된 것입니다.

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