모든 소프트웨어에는 버그가 있다는 말이 있듯이 솔라리스도 예외는 아니다. 솔라리스도 가끔 응용프로그램이 실행중 "Bus Error" 또는 "core dumped" 라는 메시지만 딸랑 출력하고 비정상으로 응용프로그램이 종료되는 경우가 있다. 윈도우 패밀리와 다른 점이 있다면 응용프로그램에서 생긴 문제가 솔라리스 자체에는 영향을 미치지 않기 때문에 다른 응용프로그램들은 정상적으로 잘 작동한다는 것이다. 솔라리스에서는 이러한 소프트웨어의 잘못을 응용프로그램이 비정상적으로 종료가 되었는지, 시스템 자체가 비정상으로 종료가 되었느냐에 따라 두 가지로 구별한다. 시스템 자체가 비정상으로 종료가 되는 경우는 dumpadm 명령어를 사용해서 설정한 그대로 현재 시스템의 모든 정황을 파일에 저장하고 , 응용프로그램이 비정상을 종료될 경우에는 coreadm 명령어를 사용한 설정에 따라서 으용프로그램의 모든 정황을 파일로 저장한다.


* dumpadm

  : 솔라리스 자체에 이상이 발생하여 비정상적으로 종료될 경우

    dumpadm 으로 설정한 구성에 따라 현재 시스템의 메모리에

    있는  데이터등 현재 시스템의 모든 정황을 파일에 저장한다.

    저장하는 데이터는 순수하게 솔라리스 커널을 의미하는 커널

    데이터현재 시스템의 멤모리에 적재되어 있는 모든 데이터를

    의미하는 메모리 전체 데이터로 나눈다.


  - dumpadm을 사용해 설정할수 있는 내용

    : 비정상 종료시 데이터를 저장할것인지 여부, 저장할 데이터의

      선정과 저장 장소, 재부팅 후 파일로 생성할것인지 여부를 설정

      하며 파일 생성을 설정할경우 부팅시 savecore명령어가 동작

      하여 메모리의 정황을 파일로 변환한다. 메모리 정황은 vmcor

      e.n 파일에 저장하고, vmcore.n 파일에 필요한 부가적 데이터

      는 unix.n 파일에 저장한다. (vmcore와 unix 다음에 붙은 n은

      몇번째 파일인지 의미)


  - dumpadm 로 설정을 변경하면 /etc/dumpadm.conf 파일에 즉

     시 저장된다. 단, -m 옵션으로 명시한 여유공안은 /var/crash/

     `hostname`/minfree 파일에 저장된다.


  - ex >

    # dumpadm -c all -m 20% -y

         -c 옵션은 메모리 데이터중 커널데이터만 저장할것인지

         아니면 전체 데이터를 저장할것인지 명시한다. 커널 데이터

         만 저장할 경우 옵션 다음에 kernel 이라 명시하면 된다. 예

         제는 all 이므로 전체 데이터를 저장한다.

         -m 옵션은 하드디스크 여유공간을 조건으로 명시, 만족되는

         경우만 파일로 생성,단위는 k(kilo), m(mega)로 되며, 예제처

         럼 하드디스크의 퍼센테이지로도 명시할수 있다.

         -y 옵션(Default option)은 부팅시 savecore 프로그램이 하

         드디스크에 저장된 메모리에 데이터를 파일 형태로 변환하

         여 /var/crash/`hostname` 디렉토리나 -s 옵션으로 명시한

         디렉토리에 저장된다. -n 을 명시하면 부팅시 savecore가

         동작하지 않기 때문에 하드디스크에 저장된 메모리 데이터가

          파일로 변환되지 않는다.


     # cat /etc/dumpadm.conf

          - 설정 내용 확인

     # ls -ld /var/crash/`hostname`

          - 디렉토리가 소유주만 읽기,변경,실행의 권한을 갖고 생성

    # ls -l   /var/crash/`hostname`

          - minfree 파일에는 하드디스크에 저장된 메모리 데이터를

            파일로 변환할 조건이 저장되어 있다.

    # reboot -d

          - -d 옵션을 사용하면 강제로 메모리의 데이터를 하드디스

             크에 저장한다.

     # ls -al

          - /var/crash/`hostname` 밑에 변환된 파일들 확인

             (vmcore.0 unix.0)

          - bounds 파일은 다음에 저장할 파일들의 확장자를

             저장하고 있다.

    

* coreadm

  : 응용프로그램이 비정상적으로 종료될 경우 다른 다른 프로그램

    에는 영향을 미치지않고 자신만 실행을 중단하면서 "core dump

    ed" 나 "Bus error" 와 같은 메세지를 출력하다. 그리고  응용 프

    로그램이 실행된 디렉토리나 / 디릭토리에 자신이 시스템에서

    실행되는 현재 모습을 그대로 저장한 core파일을 생성한다. 생

    성된 core파일은 프로그램 개발회사에 보내어서 버그를 수정하

    도록 돕는것이 좋을것이다.

  - core 파일의 문제점

    : 어떤 프로그램이 비정상 종료가 되더라도 항상 파일이름이 cor

      e인 것이 생성되고 여러 프로그램이 한꺼번에 종료되더라도 한

      개의 파일만 생성된다. 이를 coreadm을 사용하여 생성되는 co

      re파일의 이름에 여라가지 추가정보를 포함하여 변경할수있다.

  - core 명령어 다음에 아무런 옵션이나 아규먼트를 넣지 않으면

    현재 설정값을 /etc/coremadm.conf 파일에 설정 내용을 출력한

    다.

  - ex>

     # coreadm -g /var/core.%f.%u.%m -e global

        - -g,-i,-p 옵션은 생성되는 파일 이름을 어떤 방식으로 결정

          할 것인지 나타내는 패턴을 명시한다.

          -g(global) : 시스템에서 실행되는 모든 프로세스에 대해서

                           비정상적으로 종료될때 생성되는 이름

          -i(init) : init 프로세스에 의해서 생성된 프로세스가 비정상

                     적으로 종료될때 생성되는 이름

          -p : 항상 PID를 함께 명시하는데 실행중인 프로세스의 PID

                나 PPID가 -p 옵션 다음에 명시한 PID와 같을 경우에만

                적용

        - -g,-i 옵션은 /etc/coreadm.conf 파일에 패턴을 저장하기

           때문에 반드시 root 사용자권한이 필요하며 리부팅하더라

           도 계속 유지된다.

        - 패턴 의미

            %p PID                %u EUID                 %g EGID

            %f 명령어 이름      %n 시스템의 이름     %m 기계의 종류

            %t 시간                %% %기호 자체

        - -d(disable)와 -e(enable) 옵션은 core파일의 생성 여부를

           설정하는 옵션, 기능은 다음과 같다.

           global : -g 옵션을 사용해서 명시한 패턴 사용

           process :  -i, -p 옵션을 사용해서 명시한 패턴 사용

           global-setid : setuid 권한이나 setgid 권한이 설정된 프로

                              세스도 -g 옵션을 사용해서 명시한 패턴을

                             사용한다.

           proc-setid : setuid 권한이나 setgid 권한이 설정된 프로

                              세스도 -i 이나 -p 옵션을 사용해서 명시한

                              패턴을 사용한다.

           log : -g 옵션을 사용해서 명시한 패턴에 따라서 core파일

                이 생성될 경우에 그 기록을 시스템에 파일로 남긴다.

        - global-setid와 proc-setid는 생성되지 않도록 하는 것이 좋

          다. 이 두개가 생성될 경우에는 setuid 권한이나 setgid 권한

          이 명시된 프로그램이 메모리에서 실해오디던 상태가 파일

          로 저장되어 일반 사용자들이 분석할 수 있게 된다. 이런 파

          일을 분석하여 어떤 경우에 core파일이 생성되는다는 것을

          비롯한 프로그램의 취약점을 발견할 가능성이 존재, 핵킹의

          위험이 될수 있다.

 

     # coreadm

        - 설정내용 /etc/coreadm.conf 에 출력

     # more /etc/coreadm.conf

        - 설정내용 출력

          

     # coreadm -p core.%f.%p.%t $$

        - $$ : 현재 사용중인 Shell의 PID

        - -p옵션으로 명시한 core파일의 이름은 설정내용이 파일에

           남지 않아서 쉘을 빠져나가거나 시스템을 리부팅하면 설정

           내용이 남지 않는다.

     # coreadm -e log

     # coreadm

        - -e옵션을 사용해서 기록을 남기도록 설정했으므로

           /var/adm/message 파일에 기록이 남게 된다.

>> 3510 점검법

logserver-root/> sccli
sccli: selected device /dev/rdsk/c6t40d0s2 [SUN StorEdge 3510 SN#07D4E2]
sccli> show battery-status
sccli> show disks
sccli> show events

>> T3 점검법

:/: sys stat
:/: vol stat (drive 코드 번호 0 정상)
:/: vol list (hotspace 드라이브 점검)
:/: fru stat

+ Recent posts