솔라리스 시스템 점검 2006.03.16
시스템 관련 명령어들 O/S version 및 Kernel version 확인 Disk 용량 및 Disk Type 확인 #uname –a SunOS sol10 5.10 Generic sun4u sparc SUNW,Sun-Fire-280R Disk 용량 및 Disk Type 확인 #df –k (solaris 8 이전) #df –h (solaris 9 이후, -k 도 사용가능) #df –o i (inode 개수 파악) #format Hardware 상태 확인 #/usr/platform/sun4u/sbin/prtdiag –v | more 기본적으로 CPU, Mermoy, I/O card, FAN speed, Power Supply 상태, System 내부온도, Disk 상태 모든 하드웨어 상태를 이 명령어 하나로 확인할 수 있음. (가장 많이 사용하는 명령어)
Df –k 예제 중요 필드 필요한 부분은 “현재 Disk가 어떻게 할당되어져 있고, 얼마만큼 쓰고 있는냐?” 일 것이다. root@main-master # df -k 파일시스템 K바이트 사용 가용 용량 설치지점 /dev/dsk/c1t0d0s0 10323610 5988026 4232348 59% / /proc 0 0 0 0% /proc mnttab 0 0 0 0% /etc/mnttab fd 0 0 0 0% /dev/fd swap 5506376 168 5506208 1% /var/run swap 5519944 13736 5506208 1% /tmp /dev/dsk/c1t0d0s3 10323610 9174873 1045501 90% /opt /dev/dsk/c1t0d0s4 10232602 6371581 3758695 63% /backup 중요 필드 필요한 부분은 “현재 Disk가 어떻게 할당되어져 있고, 얼마만큼 쓰고 있는냐?” 일 것이다. 위 예제 볼때, 1개의 디스크에 4개의 파티션으로 쪼개져 있는것을 알수 있다. c1t0d0s0, c1t0d0s3, c1t0d0s4 <- 3개, o/s swap 영역으로 보이진 않지만 ,c1t0d0s2 가 있다. Disk 할당부분은 알게 되었고, 얼마나 쓰는냐는 사용, 가용, 용량 필드를 보면 쉽게 알수 있다. Kilobyte 단위로 표현된다.
System Platform 및 Total Memory PRTDIAG 예제 시스템 구성: Sun Microsystems sun4u Sun Fire 280R (2 X UltraSPARC-III+) 시스템 클록 주파수: 150 MHz 메모리 크기: 2048 MB ========================= CPUs =============================================== Run E$ CPU CPU Brd CPU MHz MB Impl. Mask --- --- ---- ---- ------- ---- A 0 900 8.0 US-III+ 2.3 B 1 900 8.0 US-III+ 2.3 ========================= 메모리 구성 =============================== Logical Logical Logical MC Bank Bank Bank DIMM Interleave Interleaved Brd ID num size Status Size Factor with ---- --- ---- ------ ----------- ------ ---------- ----------- CA 0 0 1024MB no_status 512MB 2-way 0 CA 0 2 1024MB no_status 512MB 2-way 0 ========================= IO 카드 ========================= Bus Max IO Port Bus Freq Bus Dev, Brd Type ID Side Slot MHz Freq Func State Name Model ---- ---- ---- ---- ---- ---- ---- ---- ----- -------------------------------- I/O PCI 8 B 4 33 33 1,0 ok TSI,gfxp GFXP CPU 정보 Memory 정보 I/O board에 장착된 CARD 정보
시스템 성능 점검 시 사용하는 명령어들 CPU 성능 Check Memory 상태 Check Disk I/O 상태 Check #vmstat 2 #mpstat 2 (각 CPU 당 사용치를 측정) #sar –u 2 10 ( 각 사용자 별 CPU 사용치를 측정) Memory 상태 Check #swap –s Disk I/O 상태 Check #iostat –xnct 2 (Disk I/O, Disk busy 상태를 측정) Network Packet Check #netstat –i 2 (Network Packet 량을 측정) #netstat –I hme0 –i 2 (각 Network Interface 별 Packet 량을 측정) 실시간 모니터링 명령 #prstat (실시간으로 프로세스 및 CPU, Memory 상태를 볼 수 있음.) #top (기본적으로 제공되지 않고, top 패키지를 설치했을 때 사용 가능. prstat와 유사한 tool)
VMSTAT 예제(report virtual memory statistics) 중요필드 Procs의 r (run queue) : run queue에서 대기하고 있는 프로세서 수. r을 CPU 수로 나누어 0이면 CPU가 Idle, 0~3 사이면 정상, 3~5 사이면 CPU가 Busy한 상태, 5 이상이 유지되면 CPU가 매우 Busy. Page의 sr (scan rate) : free memory page 스캐닝 비율, 메모리 부족을 나타내는 지표, 높을수록 좋지 않음. CPU 의 id (idle time) : cpu 여유률, 높을수록 좋음. procs memory page disk faults cpu r b w swap free re mf pi po fr de sr s6 sd sd -- in sy cs us sy id 0 0 0 3692808 1827248 0 1 1 0 0 0 0 0 0 0 0 276 93 204 0 0 99 0 0 0 3669792 1804792 0 12 0 0 0 0 0 0 0 0 0 315 150 218 0 0 100 0 0 0 3669792 1804792 0 0 0 0 0 0 0 0 0 0 0 278 91 192 0 0 99 0 0 0 3669792 1804792 0 0 0 0 0 0 0 0 0 0 0 272 117 197 0 0 100
네트워크 관련 명령 및 확인(1) IP 확인 Defaultrouter 값 확인 #ipconfig –a #netstat –rn lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2 inet 211.170.xxx.xxx netmask ffffffc0 broadcast 211.170.127.191 ether 0:3:ba:33:9a:55 Defaultrouter 값 확인 #netstat –rn Routing Table: IPv4 Destination Gateway Flags Ref Use Interface -------------------- -------------------- ----- ----- ------ --------- 211.170. xxx.xxx 211.170.xxx.xxx U 1 328 hme0 default 211.170.xxx.1 UG 1 13458 127.0.0.1 127.0.0.1 UH 22 506287 lo0
네트워크 관련 명령 및 확인(2) DNS 확인 및 생성 Network 활성상태 확인 #nslookup root@sol10 # nslookup > sun.co.kr Server: 211.170.xxx.xxx Address: 211.170.xxx.xxx#53 Non-authoritative answer: Name: sun.co.kr Address: 209.249.116.159 #more /etc/resolv.conf nameserver 163.63.62.1 Network 활성상태 확인 #ping bumil.co.kr bumil.co.kr is alive (정상)
시스템 메세지 보기 Log file 보기 Dmesg 실시간으로 메시지 보기 #cd /var/adm/ #grep –i error messages* | more #grep –I warn messages* | more Error, Warn 이 있으면 시스템에 문제가 발생한 것이므로 주의 깊게 확인 해야 한다. notice 는 단지 알림용 Error, Warn 이 발생해도 문제의 확실한 원인을 짚어내기 힘들 수 있다. 하지만 메시지를 해석 해보면 문제 발생 지점은 알아낼 수 있다. 무조건 해석만 하면 50%는 알 수 있다. Dmesg #dmesg | more #dmesg | grep –i error #demsg | grep –i warn 시스템이 부팅된 시점부터 메시지가 쌓이는 곳이다. 재부팅 되면 내용은 사라지고 없다. 실시간으로 메시지 보기 #tail –f /var/adm/messages Messages log들이 실시간으로 화면에 표시
Process 확인 Precess 확인 명령어 Grep Tip #prstat (실시간으로 Process 상태를 확인할 수 있다.) #ps –ef | more #/usr/ucb/ps –auxww | more (process 명이 길 경우 잘려서 화면에 표시되므로 Process명을 Full-name을 보고 싶을 때 사용) Apache process 만 보고 싶다면.. #ps –ef | grep apache #grep 을 사용하면 특정 단어가 포함된 자료만 검색 Grep Tip 대소문자 구분 없이 검색 (-i option) #grep –i error /var/adm/messages 특정 단어만 제외하고 검색 (-v option) #grep –v notice /var/adm/messages
서버 켜고 끄기 서버 켜기 서버 끄기 1. power on (파워스위치가 있는 경우 파워스위치를 켠다.) 2. power Key Switch (key 를 | 방향으로 돌린다.) 3. 자동으로 Disk로 부팅되도록 설정되어 있다면 O/S 로 부팅된다. 4. 수동으로 부팅을 원할때는 Stop + A 를 누른다.(ok mode (CMOS와 비슷) 로 빠진다.) ok>boot cdrom ok>boot disk –s ( -s : single mode 부팅) 4. Login 한다. 서버 끄기 1. App , DB 등 프로세스들을 중단시킨다. 2. /usr/ucb/ps –aux | grep oracle 와 같이 프로세스들을 재확인한다. 3. 시스템을 내린다. #sync #shutdown –y –g0 –i0 or init 0 Ok>power off ( ok mode 로 빠진후 power off 하면 자동으로 시스템 전원이 내려간다.) 4. power key switch 를 원상복귀 시키고, 파워스위치를 끈다.
CD-ROM 사용하기 수동으로 CD-ROM 사용하기 자동으로 CD-ROM 사용하기 CD 제거하기 #mount –F hsfs /dev/dsk/c0t6d0s0 /cdrom 자동으로 CD-ROM 사용하기 #ps –ef |grep vold (vold daemon 실행하고 있으면 자동으로 CD-ROM 이 Mount 된다.) #/etc/init.d/volmgt stop (vold daemon 실행되는 있지만, 자동으로 되지 않을 시 vold daemon 을 stop 한다.) #/etc/init.d/volmgt start (다시 vold daemon 을 실행한다.) CD 제거하기 CD 자동 배출. 혹, CD가 자동으로 배출되지 않는다면 이는 현재 /cdrom 에 사용자가 접근해 있기 때문이다 #eject 현재 디렉토리 위치를 확인하고, 상위 디렉토리로 이동 후 cd를 배출한다. #pwd 그래도 배출되지 않을때, 해당 process 을 kill 한다. 방법은 #fuser –c –u /cdrom
DAT Drive 사용하기 DAT 관련 명령어 DAT 종류 #mt status (Tape 상태확인) HP DDS-4 DAT (Sun) tape drive: sense key(0x0)= No Additional Sense residual= 0 retries= 0 file no= 0 block no= 0 #mt rewind (Tape 되감기) #mt –f /dev/rmt/0 erase (Tape 내용 지우기) #mt –f /dev/rmt/0 offine (Taep 제거하기) DAT 종류 Tape DDS1 DDS2 DDS 3 DDS 4 DDS 5 (DAT 72) 용 량 (비압축/압축) 2.0 / 4.0GB 1.3 / 2.6GB 4 / 8GB 12 / 24GB 20 / 40GB 36 / 72GB Throughput 500KB/sec 778KB~2MB/sec 2.4/6.0MB/sec
백업 DISK 복제 Ufsdump Tar 명령어 #dd if=/dev/dsk/c0t0d0s2 of=/dev/dsk/c0t1d0s2 bs=8192k 동일한 Type의 Disk간 복제 가능. 원본 디스크에 문제 발생시 복제해 둔 디스크를 사용하여 서비스 가능 Ufsdump Ufs file system 를 dump 명령 #ufsdump 0cuf /dev/rmt/0 /oracle #ufsrestore rf /dev/rmtt/0 Tar 명령어 File 묶을 때 사용하는 명령어 #tar cfp oracle.tar /oracle #tar xfp oracle.tar #tar cfp - . | (cd /test;tar xfp -) 많은 파일들을 옮길 때, file 묶음과 동시에 다른 디렉토리에 파일을 해체
사용자 관리 패스워드 변경 Shell 변경 사용자 변경 #passwd #passwd –e Old passwd : ******* New passwd : ******* Shell 변경 #passwd –e 이전셸 : /sbin/sh 새 셸 : /bin/ksh or /bin/csh 사용자 변경 “-” 옵션 사용시 새로 로그인하는 것과 같이 셸의 초기화 파일을 읽으며, 전환한 사용자의 홈디렉토리로 옮기게 된다. #su – oracle “-” 옵션 사용하지 않을 시 다른 사용자로 전환, 사용자 초기 파일을 읽지 않고 현재 디렉토리에 머물러 있다. #su oracle