System Reliability Manager에 포함된 스크립트 리포지토리 및 스크립트 시작 관리자 모듈을 사용하면 원격 장치에서 임의적인 관리 태스크를 수행하는 스크립트를 실행할 수 있습니다. 원격 장치에서 스크립트를 실행하는 기능을 사용하면 중앙 관리 스테이션의 처리 부하가 줄어듭니다. 또한 로컬에서 폴링을 계속할 수 있게 하는 메커니즘도 제공합니다.
이 장에서는 다음 주제를 다룹니다.
스크립트 리포지토리 모듈을 사용하면 스크립트 시작 관리자 모듈이 실행할 에이전트 시스템에서 사용할 수 있는 스크립트를 볼 수 있습니다. 또한 스크립트 리포지토리 모듈은 스크립트 시작 관리자 모듈이 지원하는 언어를 나열합니다.
(Solaris 10) DTrace(동적 추적)를 사용하면 사용자가 프로그램 및 운영 체제의 동작을 관찰할 수 있습니다. DTrace를 통해 사용자는 시스템을 탐색하고, 시스템 작동 방법을 이해하고, 소프트웨어 계층에서 성능 문제를 추적하거나 이상 동작의 원인을 찾을 수 있습니다. D 프로그래밍 언어는 시스템 디버깅을 도와줄 수 있는 프로그램을 작성하도록 Solaris 10과 함께 제공됩니다.
DTrace에 대한 자세한 내용은 Solaris Dynamic Tracing Guide를 참조하십시오.
스크립트 리포지토리 모듈에는 Solaris 10용으로 자주 사용되는 DScript가 들어 있습니다. 스크립트 시작 관리자 모듈에서 이러한 스크립트를 실행할 수 있습니다.
스크립트 정보 그룹에는 다음과 같은 두 개의 테이블이 포함됩니다.
언어 테이블: 지원되는 언어를 나열합니다. 현재 Java, 쉘 스크립트 및 DScript (Solaris 10)가 포함됩니다.
스크립트 테이블: 에이전트에서 사용할 수 있는 스크립트를 볼 수 있습니다.
스크립트 리포지토리 모듈에 대한 보안은 다음과 같이 구현됩니다.
root 사용자만 스크립트를 다음 디렉토리에 둘 수 있습니다.
/var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts
각 스크립트는 스크립트 실행에 허용되는 사용자 및 그룹을 지정합니다. 이 사용자 및 그룹은 스크립트 구성 파일의 사용자 및 그룹 항목으로서 지정됩니다. 또한 스크립트 테이블을 통하여 아무 콘솔에서나 이 필드를 모니터할 수 있습니다. 이 필드 수정은 esadm 사용자에게만 허용됩니다.
root는 스크립트 테이블의 스크립트 사용자 필드에 있을 수 없습니다.
모듈을 로드합니다.
모듈 로드 및 언로드에 대한 자세한 내용은 Sun Management Center 3.6 사용 설명서를 참조하십시오. 네비게이터 창의 로컬 응용 프로그램 아래에서 스크립트 리포지토리 모듈을 사용할 수 있습니다.
브라우저 창에서 로컬 응용 프로그램을 두 번 누릅니다.
해당 범주가 확장됩니다.
로컬 응용 프로그램 아래에서 스크립트 리포지토리를 두 번 누릅니다.
해당 범주가 확장됩니다.
언어 테이블 및 스크립트 테이블을 보려면 스크립트 정보 폴더를 두 번 누릅니다.
스크립트 정보 그룹의 첫 번째 테이블은 언어 테이블입니다. 언어 테이블에는 에이전트에서 지원되는 모든 스크립트 언어가 나열합니다. 각 테이블 항목에는 다음 속성이 있습니다.
언어 이름(예: Java)
언어 소스(예: /usr/java)
이 테이블에 사용할 수 있는 명령은 없습니다. 언어를 삭제하거나 새 언어를 지정할 수 없습니다. 모듈이 지원하는 언어 및 모듈의 구현에 의해 항목의 수가 고정되고 정의됩니다.
셀에 새 정보를 입력하여 언어 소스를 수정할 수 있습니다.
지정된 위치에서 해당 언어를 찾을 수 없는 경우 System Reliability Manager에서 정보(INFO) 경보가 발생합니다.
스크립트 테이블에는 에이전트의 스크립트 시작 관리자에 알려진 모든 스크립트가 나열됩니다.
(Solaris 10) 일부 사전 정의된 DScript는 스크립트 테이블에 추가됩니다.
스크립트 테이블의 각 항목에는 다음 표에 나열된 속성이 있습니다.
표 5–1 스크립트 테이블 값
브라우저를 통하여 수정할 수 있는 필드는 관리 상태, 스크립트 사용자 및 그룹입니다. 관리 상태는 사용자가 원하는 스크립트 상태를 입력한 영역입니다. 예를 들어 관리 상태를 활성화 또는 비활성화할 수 있습니다. 이 선택 항목은 사용자가 원하는 상태를 반영하지만 일단 모듈에서 모든 조건이 일치하고 준비되었음을 확인한 경우 실제 상태를 반영하는 것은 작동 상태입니다.
스크립트가 지원되지 않는 언어로 작성되어 있는 경우 정보 경보가 발생됩니다.
스크립트에 액세스할 수 없는 경우 정보 경보가 발생됩니다.
ScriptInfo.dat에는 실행할 수 있는 스크립트에 대한 정보가 있습니다. ScriptInfo.dat 파일에 새 스크립트를 추가하면 모듈이 해당 스크립트를 인식할 수 있습니다. 사용자가 소유하는 모든 스크립트는 이 파일 목록에 포함해야 합니다.
ScriptInfo.dat에는 쉘 스크립트, Java 및 DScript (Solaris 10)에 작성된 스크립트에 대한 정보가 들어 있습니다.
새 스크립트를 작성합니다.
ScriptInfo.dat 파일의 형식은 표준 구성 파일 형식을 따릅니다.
slice:attribute=value
새 스크립트를 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초 후에 출력 내용을 볼 수 있습니다.
시작 테이블 – 시작할 준비가 된 스크립트를 설명하고 스크립트 매개 변수를 표시합니다.
결과 테이블 – 선택된 스크립트의 실행 결과를 볼 수 있습니다.
스크립트 시작 관리자 모듈에서 다음과 같이 스크립트를 조정할 수 있습니다.
스크립트 리포지토리 모듈의 스크립트를 읽고 쓰고 실행할 수 있는 사람을 제어합니다.
관리 스크립트의 인수를 지정합니다.
관리 스크립트를 시작 및 종료합니다.
관리 스크립트 실행을 모니터하고 제어합니다.
관리 스크립트를 실행하여 나온 결과를 봅니다.
스크립트를 읽고 쓰고 실행하도록 허용되는 사람을 제어합니다.
스크립트 시작 관리자 모듈에 대한 보안은 다음과 같이 구현됩니다.
root는 시작 테이블의 LaunchOwner 필드의 일부가 될 수 없습니다. 시스템의 root 사용자가 스크립트를 수퍼유저로서 실행할 수 있게 하려면 시스템에 새 사용자를 만듭니다. 이 사용자 이름을 사용하여 스크립트를 실행합니다.
launchOwner는 서버의 새 esscrusers 그룹의 일부이어야 합니다. esscrusers만이 시작 테이블에서 행을 만들거나 변경할 수 있습니다.
시작 소유자 또는 launchOwner는 에이전트 시스템에서 유효한 사용자여야 합니다. 사용자는 로컬 사용자 또는 에이전트의 NIS와 같은 서비스를 통하여 추가된 사람이어야 합니다. 스크립트가 시작 소유자의 사용 권한으로 실행됩니다.
스크립트 시작 관리자 모듈을 사용하기 전에 스크립트 리포지토리 모듈을 먼저 로드해야 합니다.
모듈을 로드합니다.
자세한 내용은 Sun Management Center 3.6 사용 설명서를 참조하십시오. 브라우저 창의 로컬 응용 프로그램 아래에서 스크립트 리포지토리 모듈을 사용할 수 있습니다.
브라우저 창의 로컬 응용 프로그램을 두 번 누릅니다.
스크립트 시작 관리자를 두 번 누릅니다.
스크립트 시작 관리자가 시작 테이블 및 결과 테이블을 표시합니다.
시작 테이블은 모든 스크립트의 실행을 제어합니다. 이 테이블은 시작할 준비가 된 스크립트 및 스크립트 매개 변수를 설명합니다.
시작 테이블의 항목은 인수를 스크립트에 첨부합니다. 항목은 또한 스크립트를 실행할 권한에 연결하기 위해 사용되는 소유자를 정의합니다.
이 테이블의 단일 항목을 통하여 스크립트의 여러 인스턴스를 만들 수 있습니다. 또한 이 테이블의 여러 항목이 스크립트 테이블의 동일한 스크립트를 가리킬 수도 있습니다. 인수와 사용 권한이 다르게 하여 동일한 스크립트를 여러 개 실행할 수 있습니다. 시작 소유자의 사용 권한으로만 스크립트를 실행할 수 있습니다.
표 5–2 시작 테이블 속성
스크립트 시작 관리자 모듈 액세스의 설명과 같이 시작 테이블에 액세스합니다.
시작 테이블 헤더를 마우스 단추로 세 번 누릅니다.
팝업 메뉴가 표시됩니다.
새 행을 선택하고 필요한 모든 매개 변수를 제공합니다.
스크립트 소유자 및 스크립트 이름 값은 이 시작 단추에서 시작된 스크립트를 가리킵니다.
스크립트 시작 관리자 모듈 액세스의 설명과 같이 시작 테이블에 액세스합니다.
원하는 스크립트 이름을 표시하는 행을 마우스 단추로 세 번 누릅니다.
시작 스크립트를 선택합니다.
스크립트가 시작됩니다.
스크립트 시작 관리자 모듈 액세스의 설명과 같이 시작 테이블에 액세스합니다.
중지할 스크립트를 표시하는 행을 마우스 단추로 세 번 누릅니다.
팝업 메뉴가 나타납니다.
중단 스크립트를 선택합니다.
스크립트가 실행을 중지합니다.
결과 테이블에는 현재 실행 중이거나 최근에 종료된 모든 스크립트가 나열됩니다. 이 표에는 다음과 같은 정보가 있습니다.
스크립트 실행이 시작되고 종료된 시간
스크립트 실행이 종료된 이유
스크립트의 결과
스크립트를 실행할 수 있는 남은 시간
결과 테이블의 각 행에는 스크립트 호출 시에 전달된 인수, 스크립트가 만든 결과 및 스크립트 종료 코드가 포함되어 있습니다. 결과 테이블은 또한 현재 실행 상태에 대한 정보 및 시작 및 종료 타임스탬프를 제공합니다.
표 5–3 결과 테이블 속성
스크립트 리포지토리 모듈 액세스의 설명과 같이 결과 테이블에 액세스합니다.
결과 테이블에서 실행 중인 스크립트 항목을 마우스 단추로 세 번 누릅니다.
팝업 메뉴가 표시됩니다.
선택된 실행 중인 스크립트에 해당하는 결과 로그 파일을 보려면 결과 로그 보기를 선택합니다.
검사 뷰어가 나타나서 로그의 결과를 표시합니다.
명령줄에서 로그 파일에 액세스할 수도 있습니다. 로그 파일은 /var/opt/SUNWsymon/SysMgmtPack/script-launcher/scripts/ UserName/logs 디렉토리에 저장됩니다. 로그 파일 이름에는 실행 중인 인스턴스가 포함되므로 사용자가 동일한 스크립트를 여러 번 실행하는 경우 현재 로그 파일을 확인할 수 있습니다.
스크립트 리포지토리 모듈 액세스의 설명과 같이 결과 테이블에 액세스합니다.
결과 테이블에서 행을 마우스 단추로 세 번 누릅니다.
팝업 메뉴가 표시됩니다.
행 삭제를 선택합니다.
삭제를 확인 또는 취소할 수 있는 대화 상자가 나타납니다.
확인하려면 예를 누릅니다.
행이 삭제되면 실행 테이블이 자동으로 새로 고침됩니다.