글
9장. 시스템 유지관리
먹고는 살아야지;;;
2008/11/25 16:20
1. 시스템의 로그 관리
로그 파일은 시스템 운영중에 발생하는 변경사항을 기록하거나 수행하면서 단계별로 결과 등을 기록하는 것임. 차후 장애나 프로그램 수행의 결과가 잘못되었을 경우 무엇인 원인이 되었는지를 파악하는 과정에서 사용될 수 있는 중요한 근거.
관리자는 로그를 관리하고 항상 모니터링할 필요가 있음.
/var/adm/syslog/syslog.log
시스템을 부팅할 때 커널에 의해 인식되는 하드웨어 기록이나 시스템에서 하드웨어적인 이상이 있을 경우, 사용자들이 접속하고 나갈때 발생하는 로그들이 기록. 일반적인 ASCII 파일 기록.
리부팅후에는 syslog 에 기록되어 있는 기존의 내용을 OLDsyslog.log 파일로 옮기고 부팅이후부터 발생되는 로그를 새롭게 기록함,
/var/adm/wtmp
사용자의 로그인, 로그아웃에 대한 기록을 유지하는 파일. 포맷은 일반적인 아스키 파일이 아닌 특정한 서식을 가진 이진 데이터 파일.
wtmp 파일의 내용을 백업하고 비우는 과정
wtmp 파일의 내용을 백업하고 비우는 과정. 이러한 wtmp 파일의 내용은 일반적인 ASCII 텍스트 파일이 아닌 특정한 서식을 가진 이진 파일이므로, cat 이나 more 또는 head 같은 text 파일의 내용을 보는 명령으로 확인할 수 없고, /usr/bin/last 명령을 사용하여 확인.
이 파일은 실패한 로그인 시도를 기록하여 두는 파일. 이 파일은 wtmp 와 마찬가지로 서식이 있는 이진 파일이므로, 파일 내용을보기위해서는 /usr/bin/lastb 라는 명령을 사용.
/var/adm/sulog
시스템에서 'su 명령의 사용에 관한 정보를 기록하는 역할' su명령을 사용하는 이전 및 새 사용자의 이름과 명령을 수행한 해당 단말기의 포트명, 날짜와 시간, 명령 시도의 성공 여부등이 기록. 성공할 경우 + 실패할 경우 - 로 기록. 일반적인 ASCII 파일이기 때문에 cat, more 명령을 사용.
/var/adm/cron/log
cron에 의해서 명령들이 수행될 경우 발생하는 정보를 기록하는 역할. 이 파일 역시 ASCII 텍스트 파일 형태로 기록. cron 프로세스 ID와 시간이 기록. cron 에 등록되어 있는 명령의 내용이 기록. 명령의 사용자, 프로세스 ID, cron job 이 시작된 시간이 기록되고 cron job 이 끝난 시간이 기록.
/var/adm/lp/log
프린터를 사용하는 경우에 그 내용이 기록되는 파일. 일반적으로 ASCII 텍스트 파일 형태. lp log가 시작된 시간이 기록. 프린트시 사용된 job 번호와 사용자명, 그리고 프린터명 및 시간이 기록.
/var/adm/sw/sw*.log
시스템에 프로그램을 설치하는 과정을 기록하는 로그 파일.
기타 삭제 가능한 임시 파일들
core file
종료되지 않은 프로세스의 core 이미지. 시스템의 어느 위치에서나 생성되며 이 파일이 생성되는 원인으로는 프로세스의 메모리 사용 위반, 잘못된 명령의 수행, 유동 소수점 예외 상황 발생, 시스템 버스의 오류, 사용자의 직접적인 core 생성 종료 신호.
사용자의 직접적인 생성 종료 신호를 이용하여 core 파일이 생성되는 경우를 확인. sleep 30 이라는 명령을 수행하여 30초 동안 프로세스가 수행되도록 한 뒤 kill 명령을 사용하여 core 파일을 생성하면서 프로세스를 종료시킨다.
core 파일을 찾아서 모두 삭제하여 보도록 하자.
/var/tmp/Ex* 파일
vi 편집기를 사용하여 파일을 편집할 경우 파일의 편집 내용을 임시로 저장하여 두는 데이터 파일. 편집 도중 갑자기 세션이 끊겨 저장하지 않은 채로 편집한 내용을 잃어버리게 될 경우를 대비. 파일 편집이 비정상적으로 끝나게 될 경우 /var/tmp 디렉토리에 위와 같은 무자열을 시작으로 하는 형태로 존재. 일반적으로 아스키가 아닌 데이터 파일이기 때문에 strings를 이용해서 본다.
2. 커널의 생성과 변경
커널 재구성해야하는 이유
일반적으로 커널은 하드웨어를 직접 제어/운영체제의 저수준 기능을 관리하며 운영체제를 하드웨어의 세부적인 부분과 격리 시킴. 시스템의 운영 목적에 부합되지 않는 커널 이미지일 경우에 그 목적에 맞게 커널을 재구성하여 사용할 필요가 있음.
디바이스 드라이버 추가 및 삭제, 부속 장치 추가 및 삭제, 조정 가능한 시스템의 파라미터를 변경할 경우
커널 생성 과정
/stand/system 파일의 내용을 수정하는 것으로 가능하게 됩니다. system 파일은 시스템의 설명파일로 커널에 사용되는 드라이버를 정의. 루트와 시스템 매개변수 값을 지정.
/usr/conf/master.d 디렉토리에는 지원된느 장치에 관한 모든 정보를 가진 파일. 구조와 목적을 이해하지 못한 사람이 함부로 수정해서는 안됨.
/usr/conf/master.d 파일을 이용하여 config 이 새로운 커널 이미지를 생성하게 되는데 이 때 config 은 시스템의 여러 장치에 대한 구성표를 정의하는 파일인 conf.c 와 HP-UX커널을 작성하는 방법에 관한 명령어를 config.mk에 보관
confg.mk 파일에 있는 명령어를 사용하여 conf.c 파일을 컴파일 및 링크하여 새로운 커널인 vmunix_test 와 동적 커널 모듈이 저장되는 dlkm.vmunix_test를 생성.
명령어를 이용한 커널 컴파일
kmtune 이라는 명령어를 사용하여 system 파일의 내용을 수정하는 것이고, 다른 하나는 system 파일을 직접 편집하는 것
kmktune 을 이용한 커널 컴파일
명령어를 이용한 커널 컴파일
system 파일을 직접 수정한 커널 컴파일
기존의 kmtune 을 이용하는 것에 비해서 상당히 쉬운편이지만, 커널 파라미터 파일과 커널의 구조에 대하여 잘 모르는 관리자라면 앞의 방법을 이용하는 것이 좋다.
system 파일을 잘못 편집할 경우 시스템이 부팅되지 않을 수도 있기 때문.
SAM을 이용한 커널 컴파일
SAM을 이용하여 커널을 컴파일 하는 방법. Kernel Configuration 이라는 항목
SAM을 이용한 커널의 값 변경
maxuprc라는 dynamic 커널 파라미터의 값이 현재 5529로 설정되어 있는데, 이 값을 5530으로 변경. dynamic 커널 파라미터이므로 시스템이 리부팅되지 않는다. maxuprc 파라미터의 현재 값이 5529
3. 소프트웨어 관리
로그 파일은 시스템 운영중에 발생하는 변경사항을 기록하거나 수행하면서 단계별로 결과 등을 기록하는 것임. 차후 장애나 프로그램 수행의 결과가 잘못되었을 경우 무엇인 원인이 되었는지를 파악하는 과정에서 사용될 수 있는 중요한 근거.
관리자는 로그를 관리하고 항상 모니터링할 필요가 있음.
/var/adm/syslog/syslog.log
시스템을 부팅할 때 커널에 의해 인식되는 하드웨어 기록이나 시스템에서 하드웨어적인 이상이 있을 경우, 사용자들이 접속하고 나갈때 발생하는 로그들이 기록. 일반적인 ASCII 파일 기록.
리부팅후에는 syslog 에 기록되어 있는 기존의 내용을 OLDsyslog.log 파일로 옮기고 부팅이후부터 발생되는 로그를 새롭게 기록함,
/var/adm/wtmp
사용자의 로그인, 로그아웃에 대한 기록을 유지하는 파일. 포맷은 일반적인 아스키 파일이 아닌 특정한 서식을 가진 이진 데이터 파일.
wtmp 파일의 내용을 백업하고 비우는 과정
wtmp 파일의 내용을 백업하고 비우는 과정. 이러한 wtmp 파일의 내용은 일반적인 ASCII 텍스트 파일이 아닌 특정한 서식을 가진 이진 파일이므로, cat 이나 more 또는 head 같은 text 파일의 내용을 보는 명령으로 확인할 수 없고, /usr/bin/last 명령을 사용하여 확인.
이 파일은 실패한 로그인 시도를 기록하여 두는 파일. 이 파일은 wtmp 와 마찬가지로 서식이 있는 이진 파일이므로, 파일 내용을보기위해서는 /usr/bin/lastb 라는 명령을 사용.
/var/adm/sulog
시스템에서 'su 명령의 사용에 관한 정보를 기록하는 역할' su명령을 사용하는 이전 및 새 사용자의 이름과 명령을 수행한 해당 단말기의 포트명, 날짜와 시간, 명령 시도의 성공 여부등이 기록. 성공할 경우 + 실패할 경우 - 로 기록. 일반적인 ASCII 파일이기 때문에 cat, more 명령을 사용.
/var/adm/cron/log
cron에 의해서 명령들이 수행될 경우 발생하는 정보를 기록하는 역할. 이 파일 역시 ASCII 텍스트 파일 형태로 기록. cron 프로세스 ID와 시간이 기록. cron 에 등록되어 있는 명령의 내용이 기록. 명령의 사용자, 프로세스 ID, cron job 이 시작된 시간이 기록되고 cron job 이 끝난 시간이 기록.
/var/adm/lp/log
프린터를 사용하는 경우에 그 내용이 기록되는 파일. 일반적으로 ASCII 텍스트 파일 형태. lp log가 시작된 시간이 기록. 프린트시 사용된 job 번호와 사용자명, 그리고 프린터명 및 시간이 기록.
/var/adm/sw/sw*.log
시스템에 프로그램을 설치하는 과정을 기록하는 로그 파일.
기타 삭제 가능한 임시 파일들
core file
종료되지 않은 프로세스의 core 이미지. 시스템의 어느 위치에서나 생성되며 이 파일이 생성되는 원인으로는 프로세스의 메모리 사용 위반, 잘못된 명령의 수행, 유동 소수점 예외 상황 발생, 시스템 버스의 오류, 사용자의 직접적인 core 생성 종료 신호.
사용자의 직접적인 생성 종료 신호를 이용하여 core 파일이 생성되는 경우를 확인. sleep 30 이라는 명령을 수행하여 30초 동안 프로세스가 수행되도록 한 뒤 kill 명령을 사용하여 core 파일을 생성하면서 프로세스를 종료시킨다.
core 파일을 찾아서 모두 삭제하여 보도록 하자.
/var/tmp/Ex* 파일
vi 편집기를 사용하여 파일을 편집할 경우 파일의 편집 내용을 임시로 저장하여 두는 데이터 파일. 편집 도중 갑자기 세션이 끊겨 저장하지 않은 채로 편집한 내용을 잃어버리게 될 경우를 대비. 파일 편집이 비정상적으로 끝나게 될 경우 /var/tmp 디렉토리에 위와 같은 무자열을 시작으로 하는 형태로 존재. 일반적으로 아스키가 아닌 데이터 파일이기 때문에 strings를 이용해서 본다.
2. 커널의 생성과 변경
커널 재구성해야하는 이유
일반적으로 커널은 하드웨어를 직접 제어/운영체제의 저수준 기능을 관리하며 운영체제를 하드웨어의 세부적인 부분과 격리 시킴. 시스템의 운영 목적에 부합되지 않는 커널 이미지일 경우에 그 목적에 맞게 커널을 재구성하여 사용할 필요가 있음.
디바이스 드라이버 추가 및 삭제, 부속 장치 추가 및 삭제, 조정 가능한 시스템의 파라미터를 변경할 경우
커널 생성 과정
/stand/system 파일의 내용을 수정하는 것으로 가능하게 됩니다. system 파일은 시스템의 설명파일로 커널에 사용되는 드라이버를 정의. 루트와 시스템 매개변수 값을 지정.
/usr/conf/master.d 디렉토리에는 지원된느 장치에 관한 모든 정보를 가진 파일. 구조와 목적을 이해하지 못한 사람이 함부로 수정해서는 안됨.
/usr/conf/master.d 파일을 이용하여 config 이 새로운 커널 이미지를 생성하게 되는데 이 때 config 은 시스템의 여러 장치에 대한 구성표를 정의하는 파일인 conf.c 와 HP-UX커널을 작성하는 방법에 관한 명령어를 config.mk에 보관
confg.mk 파일에 있는 명령어를 사용하여 conf.c 파일을 컴파일 및 링크하여 새로운 커널인 vmunix_test 와 동적 커널 모듈이 저장되는 dlkm.vmunix_test를 생성.
명령어를 이용한 커널 컴파일
kmtune 이라는 명령어를 사용하여 system 파일의 내용을 수정하는 것이고, 다른 하나는 system 파일을 직접 편집하는 것
kmktune 을 이용한 커널 컴파일
명령어를 이용한 커널 컴파일
system 파일을 직접 수정한 커널 컴파일
기존의 kmtune 을 이용하는 것에 비해서 상당히 쉬운편이지만, 커널 파라미터 파일과 커널의 구조에 대하여 잘 모르는 관리자라면 앞의 방법을 이용하는 것이 좋다.
system 파일을 잘못 편집할 경우 시스템이 부팅되지 않을 수도 있기 때문.
SAM을 이용한 커널 컴파일
SAM을 이용하여 커널을 컴파일 하는 방법. Kernel Configuration 이라는 항목
SAM을 이용한 커널의 값 변경
maxuprc라는 dynamic 커널 파라미터의 값이 현재 5529로 설정되어 있는데, 이 값을 5530으로 변경. dynamic 커널 파라미터이므로 시스템이 리부팅되지 않는다. maxuprc 파라미터의 현재 값이 5529
3. 소프트웨어 관리
더보기
unixsys_09.pdf