Sun Management Center 3.6 System Reliability Manager 사용 설명서

5장 스크립트 리포지토리 및 스크립트 시작 관리자 모듈

System Reliability Manager에 포함된 스크립트 리포지토리 및 스크립트 시작 관리자 모듈을 사용하면 원격 장치에서 임의적인 관리 태스크를 수행하는 스크립트를 실행할 수 있습니다. 원격 장치에서 스크립트를 실행하는 기능을 사용하면 중앙 관리 스테이션의 처리 부하가 줄어듭니다. 또한 로컬에서 폴링을 계속할 수 있게 하는 메커니즘도 제공합니다.

이 장에서는 다음 주제를 다룹니다.

스크립트 리포지토리 모듈

스크립트 리포지토리 모듈을 사용하면 스크립트 시작 관리자 모듈이 실행할 에이전트 시스템에서 사용할 수 있는 스크립트를 볼 수 있습니다. 또한 스크립트 리포지토리 모듈은 스크립트 시작 관리자 모듈이 지원하는 언어를 나열합니다.

(Solaris 10) DTrace(동적 추적)를 사용하면 사용자가 프로그램 및 운영 체제의 동작을 관찰할 수 있습니다. DTrace를 통해 사용자는 시스템을 탐색하고, 시스템 작동 방법을 이해하고, 소프트웨어 계층에서 성능 문제를 추적하거나 이상 동작의 원인을 찾을 수 있습니다. D 프로그래밍 언어는 시스템 디버깅을 도와줄 수 있는 프로그램을 작성하도록 Solaris 10과 함께 제공됩니다.

DTrace에 대한 자세한 내용은 Solaris Dynamic Tracing Guide를 참조하십시오.

스크립트 리포지토리 모듈에는 Solaris 10용으로 자주 사용되는 DScript가 들어 있습니다. 스크립트 시작 관리자 모듈에서 이러한 스크립트를 실행할 수 있습니다.

스크립트 정보 그룹에는 다음과 같은 두 개의 테이블이 포함됩니다.

스크립트 리포지토리 모듈에 대한 보안은 다음과 같이 구현됩니다.

Procedure스크립트 리포지토리 모듈 액세스

단계
  1. 모듈을 로드합니다.

    모듈 로드 및 언로드에 대한 자세한 내용은 Sun Management Center 3.6 사용 설명서를 참조하십시오. 네비게이터 창의 로컬 응용 프로그램 아래에서 스크립트 리포지토리 모듈을 사용할 수 있습니다.

  2. 브라우저 창에서 로컬 응용 프로그램을 두 번 누릅니다.

    해당 범주가 확장됩니다.

  3. 로컬 응용 프로그램 아래에서 스크립트 리포지토리를 두 번 누릅니다.

    해당 범주가 확장됩니다.

  4. 언어 테이블 및 스크립트 테이블을 보려면 스크립트 정보 폴더를 두 번 누릅니다.

    스크립트 리포지토리 모듈의 언어 테이블 및 스크립트 테이블

언어 테이블

스크립트 정보 그룹의 첫 번째 테이블은 언어 테이블입니다. 언어 테이블에는 에이전트에서 지원되는 모든 스크립트 언어가 나열합니다. 각 테이블 항목에는 다음 속성이 있습니다.

이 테이블에 사용할 수 있는 명령은 없습니다. 언어를 삭제하거나 새 언어를 지정할 수 없습니다. 모듈이 지원하는 언어 및 모듈의 구현에 의해 항목의 수가 고정되고 정의됩니다.

셀에 새 정보를 입력하여 언어 소스를 수정할 수 있습니다.

경보

지정된 위치에서 해당 언어를 찾을 수 없는 경우 System Reliability Manager에서 정보(INFO) 경보가 발생합니다.

스크립트 테이블

스크립트 테이블에는 에이전트의 스크립트 시작 관리자에 알려진 모든 스크립트가 나열됩니다.


주 –

(Solaris 10) 일부 사전 정의된 DScript는 스크립트 테이블에 추가됩니다.


스크립트 테이블의 각 항목에는 다음 표에 나열된 속성이 있습니다.

표 5–1 스크립트 테이블 값

속성 

설명 

스크립트 소유자 

에이전트에서 이 스크립트를 소유하는 사용자입니다. 

스크립트 이름 

스크립트 이름입니다. 

설명 

스크립트의 목적에 대한 설명입니다. 

관리 상태 

가능한 상태는 다음과 같습니다. 

  • Enabled 상태이면 스크립트 소유자가 다른 사람에게 스크립트 사용을 허용합니다.

  • Disabled 상태이면 스크립트 소유자가 다른 사람에게 스크립트 사용를 허용하지 않습니다.

작동 상태 

가능한 상태는 다음과 같습니다. 

  • Enabled 상태이면 스크립트가 사용 가능하고 시작 테이블 항목이 스크립트를 시작할 수 있습니다.

  • Disabled 상태이면 스크립트를 사용할 수 없습니다.

  • NoSuchScript 상태이면 지정된 위치에 스크립트가 존재하지 않습니다.

  • WrongLanguage 상태이면 해당 언어를 알 수 없습니다.

언어 

스크립트를 작성한 언어입니다. 이 값은 언어 테이블에 나열된 언어 중 하나여야 합니다. 

스크립트 소스 

스크립트의 파일 이름입니다. 

기본 인수 

해당 스크립트의 기본 인수입니다. 

사용자 

해당 스크립트를 사용하도록 허용된 사용자입니다. 

그룹 

스크립트를 사용하도록 허용된 UNIX 그룹입니다. 

브라우저를 통하여 수정할 수 있는 필드는 관리 상태, 스크립트 사용자 및 그룹입니다. 관리 상태는 사용자가 원하는 스크립트 상태를 입력한 영역입니다. 예를 들어 관리 상태를 활성화 또는 비활성화할 수 있습니다. 이 선택 항목은 사용자가 원하는 상태를 반영하지만 일단 모듈에서 모든 조건이 일치하고 준비되었음을 확인한 경우 실제 상태를 반영하는 것은 작동 상태입니다.

스크립트 테이블 경보

ScriptInfo.dat 파일

ScriptInfo.dat에는 실행할 수 있는 스크립트에 대한 정보가 있습니다. ScriptInfo.dat 파일에 새 스크립트를 추가하면 모듈이 해당 스크립트를 인식할 수 있습니다. 사용자가 소유하는 모든 스크립트는 이 파일 목록에 포함해야 합니다.

ScriptInfo.dat에는 쉘 스크립트, Java 및 DScript (Solaris 10)에 작성된 스크립트에 대한 정보가 들어 있습니다.

Procedure새 스크립트추가

단계
  1. 새 스크립트를 작성합니다.

    ScriptInfo.dat 파일의 형식은 표준 구성 파일 형식을 따릅니다.

    slice:attribute=value
    
  2. 새 스크립트를 ScriptInfo.dat 파일에 복사합니다.

    ScriptInfo.dat 파일은 다음 예에서처럼 사용자 이름에 의해 확인되는 디렉토리에 있습니다.

    /var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts/username/ScriptInfo.dat

    이 파일에 스크립트에 대한 정보가 이미 포함되어 있는 경우 현재 정보 아래에 스크립트를 추가합니다.

    ScriptInfo.dat 파일의 다음 예에는 두 개의 스크립트가 있습니다.

    Script1:Owner = Scott
    Script1:Name = MyHello
    Script1:Desc = Says Hello
    Script1:Language = Java
    Script1:Source = Hello.class
    Script1:AdminStat = 1
    Script1:OperStat = 1
    Script1:Users = Noble
    Script1:Group = Staff
    Script2:Owner = Denise
    Script2:Name = MyFile
    Script2:Desc = Says Hello
    Script2:Language = Java
    Script2:Source = Hello.class
    Script2:AdminStat = 1
    Script2:OperStat = 1
    Script2:Users = Noble
    Script2:Group = Staff

스크립트 시작 관리자 모듈

스크립트 시작 관리자 모듈을 사용하면 관리 기능을 에이전트에 위임할 수 있습니다. 관리 기능은 관리 스크립트 언어로 작성한 관리 스크립트입니다. 스크립트 시작 관리자 모듈은 멀티 인스턴스 모듈입니다. 스크립트 시작 관리자 모듈의 모든 인스턴스는 언어 및 스크립트 정보를 위해 동일한 스크립트 리포지토리 모듈에 액세스할 수 있습니다.


주 –

(Solaris 10) 스크립트 시작 관리자 모듈에서 DScript를 실행할 수 있습니다.



주의 – 주의 –

일부 DScript는 지속적으로 모니터링할 수 있습니다. 이러한 스크립트의 출력 내용은 매우 많습니다. 이러한 스크립트로 인해 CPU 성능이 느려지고 Java 콘솔이 중지될 수 있으므로 이러한 스크립트는 사용하지 않는 것이 좋습니다.


다음 코드 스니펫을 DScript에 추가하여 특정 기간 동안 실행 흐름을 제어할 수 있습니다.

tick-1sec
/i++ >= 10/
{
exit(0);
}

위의 예제의 경우 DScript는 10초 동안만 실행됩니다. 사용자는 10초 후에 출력 내용을 볼 수 있습니다.

모듈에는 다음과 같은 두 개의 테이블이 포함됩니다.

스크립트 시작 관리자 모듈의 시작 테이블 및 결과 테이블

스크립트 시작 관리자 모듈에서 다음과 같이 스크립트를 조정할 수 있습니다.

스크립트 시작 관리자 모듈에 대한 보안은 다음과 같이 구현됩니다.

Procedure스크립트 시작 관리자 모듈 액세스

시작하기 전에

스크립트 시작 관리자 모듈을 사용하기 전에 스크립트 리포지토리 모듈을 먼저 로드해야 합니다.

단계
  1. 모듈을 로드합니다.

    자세한 내용은 Sun Management Center 3.6 사용 설명서를 참조하십시오. 브라우저 창의 로컬 응용 프로그램 아래에서 스크립트 리포지토리 모듈을 사용할 수 있습니다.

  2. 브라우저 창의 로컬 응용 프로그램을 두 번 누릅니다.

  3. 스크립트 시작 관리자를 두 번 누릅니다.

    스크립트 시작 관리자가 시작 테이블 및 결과 테이블을 표시합니다.

    스크립트 시작 관리자 및 테이블이 있는 모듈 브라우저. 그래픽에 대한 설명은 해당 컨텍스트를 참조하십시오.

시작 테이블

시작 테이블은 모든 스크립트의 실행을 제어합니다. 이 테이블은 시작할 준비가 된 스크립트 및 스크립트 매개 변수를 설명합니다.

시작 테이블의 항목은 인수를 스크립트에 첨부합니다. 항목은 또한 스크립트를 실행할 권한에 연결하기 위해 사용되는 소유자를 정의합니다.

이 테이블의 단일 항목을 통하여 스크립트의 여러 인스턴스를 만들 수 있습니다. 또한 이 테이블의 여러 항목이 스크립트 테이블의 동일한 스크립트를 가리킬 수도 있습니다. 인수와 사용 권한이 다르게 하여 동일한 스크립트를 여러 개 실행할 수 있습니다. 시작 소유자의 사용 권한으로만 스크립트를 실행할 수 있습니다.

시작 테이블에는 다음 표에 나열된 속성이 있습니다.

표 5–2 시작 테이블 속성

속성 

설명 

시작 소유자 

이 항목을 소유하는 관리자입니다. 

시작 이름 

항목의 이름입니다. 이름은 시작 테이블의 각 행에 고유해야 합니다.  

스크립트 소유자 

스크립트 이름과 조합하여 스크립트를 확인합니다.  

스크립트 이름 

스크립트 소유자와 조합하여 스크립트를 확인합니다. 

인수 

스크립트에 제공되는 인수입니다. 

시작 

스크립트의 실행을 시작합니다. 스크립트가 시작되려면 다음 조건이 충족되어야 합니다. 

  1. 항목의 작동 상태는 활성화 상태이어야 합니다.

  2. 스크립트 테이블에 스크립트 소유자 및 스크립트 이름 필드와 동일한 값을 가진 항목이 있어야 합니다.

  3. 스크립트 테이블에서 스크립트 작동 상태는 활성화 상태여야 합니다.

  4. 시작 소유자는 스크립트를 시작하는 데 필요한 보안 권한을 가집니다.

시작 제어 

이 개체는 시작 테이블에서 시작되는 실행 테이블의 모든 실행 중인 스크립트의 상태 변경을 요청하는 데 사용됩니다.  

관리 상태 

이 시작 테이블 항목의 원하는 상태이며 활성화 또는 비활성화 상태일 수 있습니다.  

작동 상태 

시작 테이블 항목의 실제 상태이며 활성화 또는 비활성화 상태일 수 있습니다.  

실행 중인 최대 스크립트 수 

해당 항목에서 호출될 수 있는 동시에 실행되는 스크립트의 최대 수입니다. 기본값은 3입니다. 이 필드는 직접 입력하여 수정할 수 있습니다.  

완료된 최대 스크립트 수 

기본값은 3입니다. 시작 테이블의 이 항목에서 호출되는 완료된 스크립트의 최대 수로, 결과 테이블에 보존할 수 있습니다.  

수명 

해당 항목에서 시작된 스크립트가 실행할 수 있는 기본 최대 시간입니다. 기본값은 86,400초(1일)입니다.  

만료 시간 

해당 항목에서 시작된 스크립트에 대한 정보가 스크립트가 실행을 종료한 후에 결과 테이블에 보존되는 기본 최대 시간입니다.  

Procedure시작 테이블에 새 항목 추가

단계
  1. 스크립트 시작 관리자 모듈 액세스의 설명과 같이 시작 테이블에 액세스합니다.

  2. 시작 테이블 헤더를 마우스 단추로 세 번 누릅니다.

    팝업 메뉴가 표시됩니다.

    시작 테이블 및 메뉴가 있는 모듈 브라우저. 그래픽에 대한 설명은 해당 컨텍스트를 참조하십시오.
  3. 새 행을 선택하고 필요한 모든 매개 변수를 제공합니다.

    스크립트 소유자 및 스크립트 이름 값은 이 시작 단추에서 시작된 스크립트를 가리킵니다.

Procedure스크립트 인스턴스 시작

단계
  1. 스크립트 시작 관리자 모듈 액세스의 설명과 같이 시작 테이블에 액세스합니다.

  2. 원하는 스크립트 이름을 표시하는 행을 마우스 단추로 세 번 누릅니다.

  3. 시작 스크립트를 선택합니다.

    스크립트가 시작됩니다.

Procedure스크립트 정지

단계
  1. 스크립트 시작 관리자 모듈 액세스의 설명과 같이 시작 테이블에 액세스합니다.

  2. 중지할 스크립트를 표시하는 행을 마우스 단추로 세 번 누릅니다.

    팝업 메뉴가 나타납니다.

  3. 중단 스크립트를 선택합니다.

    스크립트가 실행을 중지합니다.

결과 테이블

결과 테이블에는 현재 실행 중이거나 최근에 종료된 모든 스크립트가 나열됩니다. 이 표에는 다음과 같은 정보가 있습니다.

결과 테이블의 각 행에는 스크립트 호출 시에 전달된 인수, 스크립트가 만든 결과 및 스크립트 종료 코드가 포함되어 있습니다. 결과 테이블은 또한 현재 실행 상태에 대한 정보 및 시작 및 종료 타임스탬프를 제공합니다.

결과 테이블에는 다음 표에 나열된 속성이 표시됩니다.

표 5–3 결과 테이블 속성

속성 

설명 

실행 색인 

스크립트와 관련된 고유 식별자입니다. 이 값은 launchName 앞에 더 높은 정수를 추가하여 얻습니다. 정수는 0부터 시작합니다. 

인수 

스크립트가 시작될 때 스크립트에 제공되는 인수입니다. 

종료 코드 

스크립트가 실행을 종료한 이유입니다. 다음과 같은 값을 사용할 수 있습니다.  

  • None – 스크립트가 여전히 초기화 또는 실행 상태에 있습니다.

  • Halted – 스크립트가 중단되었습니다.

  • Successful – 스크립트 실행이 성공적으로 종료되었습니다.

  • Failed – 오류와 함께 스크립트 실행이 종료되었습니다.

결과 로그 

로그 파일의 경로입니다. 

실행 제어 

해당 행에 의해 정의된 실행 스크립트의 원하는 상태(중단 또는 작동하지 않음)입니다.  

실행 상태 

스크립트 실행 상태입니다. 다음과 같은 값을 사용할 수 있습니다. 

  • Initializing – 스크립트가 초기화 중입니다.

  • Running – 스크립트가 실행 중입니다.

  • Not Running – 성공적으로 완료, 실패 또는 중단되어 스크립트가 이 상태에 있을 수 없습니다. 스크립트가 실행되지 않고 있는 정확한 이유는 종료 코드 필드에 반영됩니다.

오류 로그 

로그 파일의 경로입니다. 

시작 날짜 

실행이 시작된 날짜 및 시간입니다. 

종료 시간 

실행이 종료된 날짜 및 시간입니다. 

수명 

스크립트가 실행할 수 있는 시간입니다. 이 시간이 만료될 때 스크립트가 종료되지 않으면 자동으로 강제 종료됩니다. 

만료 시간 

스크립트가 종료된 후 결과 테이블에 이 행이 존재할 수 있는 시간입니다. 이 속성은 스크립트가 시작되었을 때 시작 테이블의 만료 시간 필드 값입니다. 스크립트가 Not Running 상태가 된 후에 만료 시간(초)을 초과할 때 스크립트 항목이 결과 테이블에서 삭제됩니다. 

Procedure결과 테이블에서 결과 보기

단계
  1. 스크립트 리포지토리 모듈 액세스의 설명과 같이 결과 테이블에 액세스합니다.

  2. 결과 테이블에서 실행 중인 스크립트 항목을 마우스 단추로 세 번 누릅니다.

    팝업 메뉴가 표시됩니다.

  3. 선택된 실행 중인 스크립트에 해당하는 결과 로그 파일을 보려면 결과 로그 보기를 선택합니다.

    검사 뷰어가 나타나서 로그의 결과를 표시합니다.


    주 –

    명령줄에서 로그 파일에 액세스할 수도 있습니다. 로그 파일은 /var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts/ UserName/logs 디렉토리에 저장됩니다. 로그 파일 이름에는 실행 중인 인스턴스가 포함되므로 사용자가 동일한 스크립트를 여러 번 실행하는 경우 현재 로그 파일을 확인할 수 있습니다.


Procedure결과 테이블에서 행 삭제

단계
  1. 스크립트 리포지토리 모듈 액세스의 설명과 같이 결과 테이블에 액세스합니다.

  2. 결과 테이블에서 행을 마우스 단추로 세 번 누릅니다.

    팝업 메뉴가 표시됩니다.

  3. 행 삭제를 선택합니다.

    삭제를 확인 또는 취소할 수 있는 대화 상자가 나타납니다.

  4. 확인하려면 예를 누릅니다.

    행이 삭제되면 실행 테이블이 자동으로 새로 고침됩니다.