탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 일반 작업 Oracle Solaris 11 Information Library (한국어) |
1. Oracle Solaris 명령에 대한 정보 찾기
5. Oracle Configuration Manager 작업
15. CUPS를 사용하여 프린터 설정 및 관리(작업)
16. 시스템 콘솔, 터미널 장치 및 전원 서비스 관리(작업)
다음 절에서는 Oracle Solaris의 시스템 메시징 기능에 대해 설명합니다.
시스템 메시지는 콘솔 장치에 표시됩니다. 대부분의 시스템 메시지 텍스트는 다음과 같이 표시됩니다.
[ID msgid facility. priority]
예를 들면 다음과 같습니다.
[ID 672855 kern.notice] syncing file systems...
메시지가 커널에서 시작된 경우 커널 모듈 이름이 표시됩니다. 예를 들면 다음과 같습니다.
Oct 1 14:07:24 mars ufs: [ID 845546 kern.notice] alloc: /: file system full
시스템이 충돌하면 시스템 콘솔에 다음과 같은 메시지가 표시될 수 있습니다.
panic: error message
가끔 비상 메시지 대신 다음 메시지가 표시될 수도 있습니다.
Watchdog reset !
오류 로깅 데몬(syslogd)이 자동으로 메시지 파일에 다양한 시스템 경고 및 오류를 기록합니다. 기본적으로 이러한 시스템 메시지는 시스템 콘솔에 표시되고 /var/adm 디렉토리에 저장되는 경우가 많습니다. 시스템 메시지 로깅을 설정하여 이러한 메시지가 저장되는 위치를 지정할 수 있습니다. 자세한 내용은 시스템 메시지 로깅 사용자 정의를 참조하십시오. 이러한 메시지는 시스템 문제(예: 실패 예상 장치)를 알리는 것입니다.
/var/adm 디렉토리에는 여러 메시지 파일이 들어 있습니다. 가장 최근 메시지는 /var/adm/messages 파일(및 messages.*)에 있으며 가장 오래된 메시지는 messages.3 파일에 있습니다. 특정 기간이 경과되면(일반적으로 10일마다) 새 messages 파일이 생성됩니다. messages.0 파일의 이름은 messages.1로, messages.1의 이름은 messages.2로, messages.2의 이름은 messages.3으로 바뀝니다. 현재 /var/adm/messages.3 파일은 삭제됩니다.
/var/adm 디렉토리에는 메시지, 충돌 덤프 및 기타 데이터를 포함하는 큰 파일이 저장되므로 이 디렉토리는 많은 양의 디스크 공간을 사용할 수 있습니다. /var/adm 디렉토리가 너무 커지지 않도록 하고 다음 충돌 덤프가 저장될 수 있도록 하려면 주기적으로 불필요한 파일을 제거해야 합니다. crontab 파일을 사용하여 이 작업을 자동화할 수 있습니다. 해당 작업 자동화에 대한 자세한 내용은 충돌 덤프 파일 삭제 방법 및 14 장시스템 작업 일정 잡기(작업)를 참조하십시오.
$ dmesg
또는 more 명령을 사용하여 메시지 화면을 한 번에 하나씩 표시합니다.
$ more /var/adm/messages
예 19-1 시스템 메시지 확인
다음 예에서는 Oracle Solaris 10 시스템에서의 dmesg 명령 출력을 보여줍니다.
$ dmesg Mon Sep 13 14:33:04 MDT 2010 Sep 13 11:06:16 sr1-ubrm-41 svc.startd[7]: [ID 122153 daemon.warning] ... Sep 13 11:12:55 sr1-ubrm-41 last message repeated 398 times Sep 13 11:12:56 sr1-ubrm-41 svc.startd[7]: [ID 122153 daemon.warning] ... Sep 13 11:15:16 sr1-ubrm-41 last message repeated 139 times Sep 13 11:15:16 sr1-ubrm-41 xscreensaver[25520]: ,,, Sep 13 11:15:16 sr1-ubrm-41 xscreensaver[25520]: ... Sep 13 11:15:17 sr1-ubrm-41 svc.startd[7]: [ID 122153 daemon.warning]... . . .
참조
자세한 내용은 dmesg(1M) 매뉴얼 페이지를 참조하십시오.
시스템 로그 파일을 교체하려면 루트 crontab 파일의 항목에서 logadm 명령을 사용하십시오. /usr/lib/newsyslog 스크립트는 더 이상 사용되지 않습니다.
시스템 로그 교체는 /etc/logadm.conf 파일에서 정의됩니다. 이 파일에는 syslogd 등의 프로세스에 대한 로그 교체 항목이 들어 있습니다. 예를 들어, /etc/logadm.conf 파일의 한 항목은 파일이 비어 있지 않은 경우 /var/log/syslog 파일이 매주 교체되도록 지정합니다. 가장 최근 syslog 파일은 syslog.0이 되고 다음 번 가장 최근 파일은 syslog.1이 됩니다. 여덟 개의 이전 syslog 로그 파일이 보관됩니다.
/etc/logadm.conf 파일에는 마지막 로그 교체가 발생한 타임스탬프도 포함되어 있습니다.
logadm 명령을 사용하여 시스템 로깅을 사용자 정의하고 필요에 따라 /etc/logadm.conf 파일에서 로깅을 더 추가할 수 있습니다.
예를 들어, Apache 액세스 및 오류 로그를 교체하려면 다음 명령을 사용하십시오.
# logadm -w /var/apache/logs/access_log -s 100m # logadm -w /var/apache/logs/error_log -s 10m
이 예에서 Apache access_log 파일은 크기가 100MB에 도달할 때 .0, .1 등의 접미어를 사용하여 교체되며, 열 개의 이전 access_log 파일 복사본이 보관됩니다. error_log는 크기가 10MB에 도달할 때 access_log 파일과 동일한 접미어 및 복사본 수를 사용하여 교체됩니다.
앞선 Apache 로그 교체 예에 대한 /etc/logadm.conf 항목은 다음과 유사하게 표시됩니다.
# cat /etc/logadm.conf . . . /var/apache/logs/error_log -s 10m /var/apache/logs/access_log -s 100m
자세한 내용은 logadm(1M)을 참조하십시오.
수퍼유저 또는 동등한 역할(로그 관리 권한이 있는 역할)의 사용자로 logadm 명령을 사용할 수 있습니다. RBAC를 사용할 경우 logadm 명령에 대한 액세스 권한을 제공하여 비루트 사용자에게 로그 파일 유지 관리 권한을 부여할 수 있습니다.
예를 들어, 사용자 andy에게 logadm 명령을 사용할 수 있는 권한을 부여하려면 /etc/user_attr 파일에 다음 항목을 추가하십시오.
andy::::profiles=Log Management
/etc/syslog.conf 파일을 수정하여 다양한 시스템 프로세스로 생성된 추가 오류 메시지를 캡처할 수 있습니다. 기본적으로 /etc/syslog.conf 파일은 여러 시스템 프로세스 메시지를 /var/adm/messages 파일로 전달합니다. 충돌 및 부트 메시지도 여기에 저장됩니다. /var/adm 메시지를 확인하려면 시스템 메시지 확인 방법을 참조하십시오.
/etc/syslog.conf 파일의 두 열은 다음과 같이 탭으로 구분됩니다.
facility.level ... action
메시지 또는 상태의 facility나 시스템 소스. 쉼표로 구분되는 기능 목록일 수 있습니다. 기능 값은 표 19-2에 나열되어 있습니다. level은 기록 중인 상태의 심각도 또는 우선 순위를 나타냅니다. 우선 순위 레벨은 표 19-3에 나열되어 있습니다.
항목이 다른 우선 순위에 대한 것일 경우 동일한 줄의 동일한 기능에 대해 두 개의 항목을 삽입하지 마십시오. syslog 파일에 우선 순위를 삽입하면 해당 우선 순위 이상의 모든 메시지가 기록되며 마지막 메시지가 우선합니다. 제공된 기능 및 레벨에 대해 syslogd가 해당 레벨 이상의 모든 메시지와 일치됩니다.
action 필드는 메시지 전달 위치를 나타냅니다.
다음 예에서는 기본 /etc/syslog.conf 파일의 줄 샘플을 보여 줍니다.
user.err /dev/sysmsg user.err /var/adm/messages user.alert `root, operator' user.emerg *
이 경우 다음과 같은 사용자 메시지가 자동으로 기록됩니다.
사용자 오류는 콘솔에 출력되고 /var/adm/messages 파일에도 기록됩니다.
즉각적인 조치가 필요한 사용자 메시지(alert)는 root 및 operator 사용자에게 전송됩니다.
사용자 긴급 메시지는 개별 사용자에게 전송됩니다.
주 - 로그 대상이 /etc/syslog.conf 파일에서 두 번 이상 지정된 경우 별도의 줄에 항목을 지정하면 메시지가 잘못 기록될 수 있습니다. 각각 세미콜론으로 구분하여 한 행 항목에 여러 선택 항목을 지정할 수 있습니다.
다음 표에서는 가장 일반적인 오류 상태 소스를 보여 줍니다. 표 19-3에서는 가장 일반적인 우선 순위를 심각도순으로 보여줍니다.
표 19-2 syslog.conf 메시지의 소스 기능
|
표 19-3 syslog.conf 메시지의 우선 순위 레벨
|
예 19-2 시스템 메시지 로깅 사용자 정의
이 /etc/syslog.conf user.emerg 기능 샘플은 사용자 긴급 메시지를 루트 사용자 및 개별 사용자에게 전송합니다.
user.emerg `root, *'
다음과 같은 새로운 콘솔 기능을 통해 원격 시스템 문제 해결 성능이 향상되었습니다.
consadm 명령을 사용하여 직렬 장치를 보조(또는 원격) 콘솔로 선택할 수 있습니다. 시스템 관리자는 consadm 명령을 사용하여 시스템이 실행 레벨 간에 전환될 때 sulogin 세션을 호스트하고 재지정된 콘솔 메시지를 표시하도록 직렬 포트를 하나 이상 구성할 수 있습니다. 이 기능을 사용하면 모뎀을 이용한 전화 접속을 통해 직렬 포트에 연결하여 콘솔 메시지를 모니터링하고 init 상태 전환에 참여할 수 있습니다. 자세한 내용은 sulogin(1M) 및 뒷부분의 단계별 절차를 참조하십시오.
보조 콘솔로 구성된 포트를 사용하여 시스템에 로그인할 수 있는 상태에서는 출력 장치에 표시되는 정보가 기본 콘솔에도 표시됩니다. 부트 스크립트 또는 기타 응용 프로그램이 기본 콘솔에 대한 읽기 및 쓰기를 수행하는 경우 쓰기 출력은 모든 보조 콘솔에 표시되지만 입력 읽기는 기본 콘솔에서만 수행됩니다. 대화식 로그인 세션 중 consadm 명령을 사용하는 방법은 대화형 로그인 세션 중 consadm 명령 사용을 참조하십시오.
이제 콘솔 출력은 커널 및 새 의사 장치(/dev/sysmsg)에 기록된 syslog 메시지로 구성됩니다. 또한 rc 스크립트 시작 메시지가 /dev/msglog에 기록됩니다. 이전에는 이러한 메시지가 모두 /dev/console에 기록되었습니다.
보조 콘솔에 표시되는 스크립트 메시지를 확인하려면 콘솔 출력을 /dev/console로 전달하는 스크립트를 /dev/msglog로 변경해야 합니다. 메시지가 보조 장치로 재지정되도록 하려면 /dev/console을 참조하는 프로그램을 명시적으로 수정하여 syslog() 또는 strlog()를 사용하도록 해야 합니다.
consadm 명령은 데몬을 실행하여 보조 콘솔 장치를 모니터링합니다. 보조 콘솔로 지정된 디스플레이 장치(반송파 연결 해제, 정지 또는 손실)가 보조 콘솔 장치 목록에서 제거되고 더 이상 활성화되지 않습니다. 하나 이상의 보조 콘솔을 사용으로 설정하면 기본 콘솔에 메시지가 표시되지 않습니다. /dev/console에는 메시지가 계속 표시됩니다.
실행 레벨 전환 중 보조 콘솔 메시지를 사용할 때는 다음 사항을 염두에 두십시오.
시스템이 부트될 때 실행되는 rc 스크립트에 대한 사용자 입력이 필요한 경우 보조 콘솔에서 입력을 가져올 수 없습니다. 입력은 기본 콘솔에서 가져와야 합니다.
실행 레벨 간의 전환 시 수퍼유저 암호에 대한 프롬프트를 표시하기 위해 init에 의해 호출되는 sulogin 프로그램이 수퍼유저 암호 프롬프트를 기본 콘솔 장치와 각 보조 장치에 전송하도록 수정되었습니다.
시스템이 단일 사용자 모드이며 consadm 명령을 통해 하나 이상의 보조 콘솔이 사용으로 설정된 경우 올바른 수퍼유저 암호를 sulogin 프롬프트에 제공하기 위해 첫번째 장치에서 콘솔 로그인 세션이 실행됩니다. 콘솔 장치에서 올바른 암호가 수신되면 sulogin이 기타 모든 콘솔 장치의 입력을 사용 안함으로 설정합니다.
콘솔 중 하나가 단일 사용자 권한을 사용하는 경우 기본 콘솔 및 기타 보조 콘솔에 메시지가 표시됩니다. 이 메시지는 올바른 수퍼유저 암호를 승인하여 특정 장치가 콘솔로 지정되었음을 나타냅니다. 단일 사용자 셸이 실행되는 보조 콘솔에서 반송파 손실이 있을 경우 다음 두 가지 작업 중 하나가 발생할 수 있습니다.
보조 콘솔이 실행 레벨 1의 시스템을 나타내는 경우 시스템이 계속 기본 실행 레벨로 실행됩니다.
보조 콘솔이 실행 레벨 S의 시스템을 나타내는 경우 셸에서 init s 또는 shutdown 명령이 입력된 장치에 ENTER RUN LEVEL (0-6, s or S): 메시지가 표시됩니다. 해당 장치에 반송파가 없을 경우 반송파를 재설정하고 올바른 실행 레벨을 입력해야 합니다. init 또는 shutdown 명령은 실행 레벨 프롬프트를 다시 표시하지 않습니다.
직렬 포트를 사용하여 시스템에 로그인하고 다른 실행 레벨로의 전환을 위해 init 또는 shutdown 명령이 실행된 경우 이 장치가 보조 콘솔인지 여부에 관계없이 로그인 세션이 끊깁니다. 보조 콘솔 기능이 없는 릴리스에서도 이와 동일한 상황이 발생합니다.
consadm 명령을 사용하여 보조 콘솔로 선택된 장치는 시스템이 재부트되거나 보조 콘솔의 선택이 해제될 때까지 보조 콘솔로 유지됩니다. 단, consadm 명령에는 시스템 재부트 시 장치를 보조 콘솔로 설정할 수 있는 옵션이 포함되어 있습니다. 단계별 지침은 뒷부분의 절차를 참조하십시오.
직렬 포트에 연결된 터미널을 사용하여 시스템에 로그인한 후 consadm 명령을 사용하여 터미널의 콘솔 메시지를 확인하는 방식으로 대화형 로그인 세션을 실행하려면 다음 동작에 유의하십시오.
보조 콘솔이 활성화된 상태에서 대화형 로그인 세션에 터미널을 사용하면 콘솔 메시지가 /dev/sysmsg 또는 /dev/msglog 장치로 전송됩니다.
터미널에서 명령을 실행하는 동안에는 입력이 기본 콘솔(/dev/console)이 아닌 대화형 세션으로 전달됩니다.
init 명령을 실행하여 실행 레벨을 변경하면 원격 콘솔 소프트웨어가 대화형 세션을 강제 종료하고 sulogin 프로그램을 실행합니다. 이 단계에서 입력은 터미널에서 가져온 것만 승인되고 콘솔 장치에서 가져온 것처럼 처리됩니다. 따라서 실행 레벨 전환 중 보조 콘솔 메시지 사용의 설명에 따라 sulogin 프로그램에 암호를 입력할 수 있습니다.
그런 다음 (보조) 터미널에서 올바른 암호를 입력하면 보조 콘솔이 대화형 sulogin 세션을 실행하고 기본 콘솔 및 기타 보조 콘솔을 잠급니다. 즉, 터미널이 시스템 콘솔로 작동합니다.
여기서 실행 레벨 3으로 변경하거나 다른 실행 레벨로 이동할 수 있습니다. 실행 레벨을 변경하면 sulogin이 다시 모든 콘솔 장치에서 실행됩니다. 종료하거나 시스템이 실행 레벨 3에 도달하도록 지정하면 모든 보조 콘솔의 입력 제공 기능이 손실됩니다. 해당 보조 콘솔은 콘솔 메시지용 디스플레이 장치로 되돌아갑니다.
시스템이 시작되면 기본 콘솔 장치에서 rc 스크립트에 정보를 제공해야 합니다. 시스템이 다시 시작되면 login 프로그램이 직렬 포트에서 실행되므로 다른 대화형 세션에 다시 로그인할 수 있습니다. 장치를 보조 콘솔로 지정한 경우 터미널의 콘솔 메시지는 계속 표시되지만 터미널의 모든 입력은 대화형 세션으로 전달됩니다.
consadm 데몬은 consadm 명령을 통해 보조 콘솔이 추가되기 전까지 포트 모니터링을 시작하지 않습니다. 보안 기능으로 콘솔 메시지는 반송파가 끊기거나 보조 콘솔 장치의 선택이 해제될 때까지만 재지정됩니다. 따라서 포트에서 반송파를 설정해야만 consadm 명령을 성공적으로 사용할 수 있습니다.
보조 콘솔을 사용으로 설정하는 방법은 consadm(1m) 매뉴얼 페이지를 참조하십시오.
예 19-3 보조(원격) 콘솔을 사용으로 설정
# consadm -a /dev/term/a # consadm /dev/term/a
# consadm -a -p devicename
그러면 장치가 영구 보조 콘솔 목록에 추가됩니다.
# consadm
예 19-4 시스템 재부트 시 보조(원격) 콘솔을 사용으로 설정
# consadm -a -p /dev/term/a # consadm /dev/term/a
예 19-5 보조(원격) 콘솔을 사용 안함으로 설정
# consadm -d /dev/term/a # consadm