리눅스 (Linux)2015. 12. 24. 19:06
**리눅스 기본 시스템 확인 명령어**
#아래 명령어들은 리눅스에서 시스템상태 확인등을 위해 사용하는 기본적 명령어 입니다.
 
1. free -m 
#현재 사용중인 메모리 상태를 보여 주는 명령어 

             total       used       free     shared    buffers     cached
Mem:          1011        612        399          0         74        306
-/+ buffers/cache:        231        780
Swap:         1608          0       1608
 
1) total(총 메모리) used(사용중인 메모리) free(사용가능 메모리) shared(공유중인 메모리) buffers(버퍼 메모리) cached(캐쉬 메모리)

2) buffers(버퍼 메모리)와 cached(캐쉬 메모리) : 프로세스가 실행중에 필요한 여러 데이터를 메모리에서 유지하여 차후 다시 사용 될때 처리 속도를 향상 시킬수 있다 버퍼와 캐쉬의 차이는 버퍼는 무슨 디렉토리이며 파일 권한은 어떻게 되고, 어떤 메모리가 특정 블럭 디바이스에 대해 쓰여지거나 읽혔는지를 유지하는 반면 캐쉬는 단지 파일의 내용 그 자체만을 포함한다는 것이다.

3) 옵션 b,k,m,g 표시 단위를 지정할수 있음

4) o 옛날 방식으로 디스플레이 (-/+ 버퍼량이 표시 되지 않는다 )

5) t 실 메모리와 가상 메모리의 합이 표시 된다.

6) s 초단위로 업데이트 하며 메모리를 체크 할수 있다.
 
2. top
#시스템의 전반적인 움직임을 한눈에 보여주는 유틸리티

top - 18:43:30 up 12 days,  7:11, 26 users,  load average: 0.13, 0.27, 0.61
Tasks: 194 total,   1 running, 192 sleeping,   0 stopped,   1 zombie
Cpu(s):  7.9%us,  5.2%sy,  0.0%ni, 86.7%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   1035324k total,   978724k used,    56600k free,   161544k buffers
Swap:  1951888k total,   326044k used,  1625844k free,   276636k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                        
 5960 odoacer   20   0 99188  15m  10m S    3  1.5 244:24.31 compiz.real                                                                                    
 5604 root      20   0  154m  40m 8452 S    3  4.1 293:00.27 Xorg                                                                                           
 6150 odoacer   20   0  143m  73m  10m S    1  7.2   2:37.46 gnome-terminal                                                                                  
 5359 snmp      20   0  8464 1580 1244 S    1  0.2   2:33.45 snmpd                                                                                          
 5884 odoacer   20   0 27948 6200 5192 S    1  0.6   3:58.54 scim-panel-gtk  
 
1) top - 18:43:30(시스템 현재 시간)  up 12 days,  7:11(부팅후 시스템 운영 시간),  26 users(사용자 숫자),  load average: 0.13, 0.27, 0.61(시스템의 1,5,15분 평균 부하률)
 
2) Tasks: 194 total(현재 진행중인 프로세스 토탈 194개), 1 running(1개 동작중), 192 sleeping(192개 슬리핑모드), 0 stopped(중지된거 없음), 1 zombie(좀비 프로세서 1개)

3) Cpu(s): 7.9%us,  5.2%sy,  0.0%ni, 86.7%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st(cpu 사용률을 전반적으로 보여줌, 유저 사용, 시스템 사용, 현재 사용 가능한 량 표시)

4) Mem: 1035324k total,   978724k used,    56600k free,   161544k buffers(시스템 메모리를 보여주는 행 총량, 사용중인량, 사용 가능량, 버퍼링 메모리)

5) Swap: 1951888k total,   326044k used,  1625844k free,   276636k cached(스왑 용량 표시)

6) PID(프로세서를 나타내는 넘버) USER(실행자) PR(프로세서 우선순위) NI(프로그램 우선순위 변경값) VIRT(가상메모리 사용량) RES(물리 메모리 사용량) SHR(실제 사용 가능한 공유 메모리량)  S(프로세스 상태(run,sleep,zombi)) %CPU(cpu 사용량 %) %MEM(메모리 사용량 %) TIME+(프로세스가 실행된 총 시간) COMMAND(실행 명령어)

7) VIRT(가상메모리 사용량) RES(물리 메모리 사용량) SHR(분할된 페이지 용량) 의 차이점
-VIRT는 프로그램이 실제 사용하는 메모리의 총량을 의미한다, 이는 공유 라이브러리들 그리고 다른 프로세스들과 공유하는 메모리등을 포함 함다. 
RES 는 실제 물리적 메모리 사용량을 나타낸고 SHR은 VIRT 크기중 얼마만큼이 실제 공유가능한(메모리 또는 라이브러리들)가를 나타낸다

3. ps -ef
# 현재 동작 중인 프로세스들을 보여주는 명령어
 
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 09:03 ?        00:00:01 /sbin/init
root         2     0  0 09:03 ?        00:00:00 [kthreadd]
 
1)UID(사용자)  PID(프로세스 넘버) PPID(부모프로세서 pid) C(cpu사용량) STIME(프로세스 진행시간) TTY(프로세스와 연결된 터미널) TIME(cpu 사용시간) CMD(명령어)

2)PID(Process ID) 와 PPID(Parent Process ID) : 프로세서 식별용 값을 의미하며 리눅스는 기본적으로 0,1,2 의 프로세스를 기본으로 가지고 시작되며 이중 1번이 거의 대부분의 프로세스 들의 부모 역할을 한다, 이는 리눅스 시스템에 특성에 기반한것으로 1번 프로세서에서 fork 되어 생성되기 때문에 부모 프로세서가 종료 되면 하위 프로세서들은 모두 종료 된다.

4. vmstat
# 시스템 리소스(메모리,cpu,i/0)를 모니터링 해주는 명령어
 
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
 1  0      0 407520  76824 314244    0    0    90    32   86  385  3  1 93  3
 
1)proc : r(현재 실행중인 프로세스 수) b(슬립 상태인 프로세스수)

2)memory : swpd(사용중인 스왑 메모리) free(사용가능 메모리) buff(버퍼로 사용중인 메모리) cache(캐시로 사용중인 메모리)

3)swap : si(스왑 인), so(스왑 아웃) 메모리 상태에 따라 부족하면 스왑 아웃으로 메모리를 확보하고 필요에따라 다시 스왑인을 하게 된다.

4)io : bi(초당 블럭 디바이스로 보내는 블럭 수), bo(초당 블럭 디바이스에서 받는 블럭 수) 물리 디스크에 읽고 쓰기 속력을 의미 한다.

5)system : in(초당 인터럽트 되는 양), cs(초당 context switch 되는 양), 인터럽트란 동시에 여러 프로세스가 진행될때 필요에 따라 프로세스 사이에 시스템에 제어권을 넘겨주기 위한 알고리즘을 의미한다. 하드웨어는 한번에 한가지 일만 처리 할수 있지만 인터럽트를 이용하게 되면 여러 프로세스가 순차적으로 시스템 제어권을 주고 받을수 있기 때문에 멀티태스킹이 가능해 진다. 문맥교환(context switch)은 인터럽트 발생시 기존에 프로세서에 대한 정보를 프로세스 블럭에 기록하고 시스템 제어권을 변경하는 작업을 의미 한다.

6)cpu : us(사용자 사용 시간 비율) sy(시스템 사용 시간 비율) id(대기 상태중인 비율) wa(wait)
 
5. uptime
# 현재 시스템에 사용 시간및 유저수, 시스템 로드 들을 보여주는 명령어 

09:38:37 up 34 min,  3 users,  load average: 0.00, 0.01, 0.05
1)09:38:37(현재 시간) up 34 min(시스템 시작후 경과 시간), 3 users(사용자수), load average 0.00, 0.01, 0.05(시스템의 1분,5분,15분 평균 부하률)
 
6. netstat -nlp
#현재 시스템에 연결 되었거나 연결될 목록을 프로토콜과 함께 보여주는 명령어

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:24800           0.0.0.0:*               LISTEN      8328/synergys  
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      5101/mysqld    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      5685/apache2   
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      5374/vsftpd    
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      5207/cupsd     
tcp6       0      0 :::22                   :::*                    LISTEN      4974/sshd      
udp        0      0 0.0.0.0:41368           0.0.0.0:*                           5007/avahi-daemon:
udp        0      0 127.0.0.1:161           0.0.0.0:*                           5359/snmpd     
udp        0      0 0.0.0.0:39908           0.0.0.0:*                           22037/openvpn  
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           5007/avahi-daemon:
udp        0      0 0.0.0.0:39922           0.0.0.0:*                           22053/openvpn  
udp        0      0 0.0.0.0:631             0.0.0.0:*                           5207/cupsd     
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     13105    5451/hald           @/var/run/hald/dbus-RTrEWJV6QF
unix  2      [ ACC ]     STREAM     LISTENING     14141    5851/gconfd-2       /tmp/orbit-odoacer/linc-16db-0-7aa3f96384bf8
unix  2      [ ACC ]     STREAM     LISTENING     14148    5857/seahorse-agent /tmp/orbit-odoacer/linc-16a1-0-2d5475b0947d3
unix  2      [ ACC ]     STREAM     LISTENING     14458    5793/x-session-mana /tmp/seahorse-7zk2aa/S.gpg-agent
unix  2      [ ACC ]     STREAM     LISTENING     14496    5793/x-session-mana /tmp/orbit-odoacer/linc-16a1-0-4abf9a95d04e1
unix  2      [ ACC ]     STREAM     LISTENING     14500    5793/x-session-mana /tmp/.ICE-unix/5793
unix  2      [ ACC ]     STREAM     LISTENING     14513    5860/gnome-keyring- /tmp/orbit-odoacer/linc-16e3-0-71a817e157abd

 
1)Proto : 사용 프로토콜

2)Recv-Q Send-Q : 데이타를 보내고 받을때 사용하는 소켓 버퍼를 의미함

3)Local Address Foreign Address : 현 시스템 ip 및 사용 포트 외부에 연결 되어 있는 ip

4)State : 연결상태

5)PID/Program name : 프로세스의 숫자로 표시된 id 및 프로세스 이름

6)state 값
- LISTEN : 관련 데몬이 대기중이며 연결 가능한 상태
- SYS-SENT : 연결을 요청한 상태
- SYS_RECEIVED : 연결요구에 대한 응답을 준 후 확인 메시지를 기다리는 상태
- ESTABLISHED : 3웨이 핸드쉐이크 과정이 끝나고 연결이 완료된 상태
- FIN-WAIT1, CLOSE-WAIT, FIN-WAIT2 : 연결 종료를 요청 받은후 종료되는 과정
- CLOSING : 전송된 메시지가 유실된 상태를 나타냄
- TIME-WAIT : 연결종료 후에 한동안 유지하고 있는 상태
- CLOSED : 연결이 완전히 종료된 상태

7)socket type : 
스트림소켓(Stream socket,연결방식 ) : 신뢰도가 높으며 tcp 프로토콜을 사용해 순착적으로 전달 된다. 데이타그램소켓(Datagram socket, 비연결 방식) : 신뢰도가 낮은 udp 프로토콜을 사용해 비순차 적을 전달 된다. raw소켓(raw socket) : IP와 ICMP 프로세스의 액세스를 제공하는 소켓이다.

8)RefCnt : 해당 도메인을 사용하는 포로세스의 수
 
7. ifconfig
# 리눅스에서 네트워크 인터페이스를 확인하는 명령어
 
1) eth0 Link encap:Ethernet(연결형태 이더넷)  HWaddr 00:16:E6:4C:98:88(인터페이스 하드웨어 맥어드레스)

2) inet addr:10.0.0.117(인터페이스에 할당된 ip)  Bcast:10.0.0.255(브로드캐스트로 설정된ip)  Mask:255.255.255.0(서브넷 마스크 ip)

3) inet6 addr: fe80::216:e6ff:fe4c:9888/64 Scope:Link(인터페이스에 할당된 ipv6 형태의 ip)

4) UP BROADCAST RUNNING MULTICAST  MTU:1500(최대 전송단위(mtu))  Metric:1
5) RX packets:21685 errors:0 dropped:0 overruns:0 frame:0
* 수신 패킷의 총 수(packets)와 에러(errors)로 유실되거나 장비에서 드롭(dropped) 시킨 패킷, overrun 은 장치에 능력 이상으로 들어와서 놓친 패킷을 의미하고, frame 단위(비 정형화 된 단위)로 주고 받은 패킷의 수를 의미 합니다.

6) TX packets:14837 errors:0 dropped:0 overruns:0 carrier:0                    
* 송신 패킷의 총수(packets) , 오류(errors) , 장비에서 드롭(dropped) 시킨 패킷수, 장치 능력 이상에 패킷이 들어와 놓친 수(overruns), 감지된 반송파(carrier) 의 수를 나타냄

7) collisions:0(충돌 난 패킷의 수) txqueuelen:1000(송신큐의 크기)

8) RX bytes:12886685 (12.2 MB)  TX bytes:3476559 (3.3 MB) (송수신 전송량)

9) Interrupt:17(사용하는 인터럽트 번호)

10) lo  Link encap:Local Loopback  - 로컬 네트웍에 대한 내용으로 위와 상동
       inet addr:127.0.0.1  Mask:255.0.0.0
       inet6 addr: ::1/128 Scope:Host
       UP LOOPBACK RUNNING  MTU:16436  Metric:1
       RX packets:0 errors:0 dropped:0 overruns:0 frame:0
       TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:0
       RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b) <script src="http://yoonperl.tistory.com/plugin/CallBack_bootstrapper?&src=http://s1.daumcdn.net/cfs.tistory/v/0/blog/plugins/CallBack/callback&id=87&callbackId=yoonperltistorycom87395&destDocId=callbacknestyoonperltistorycom87395&host=http://yoonperl.tistory.com&float=left&random=712"></script>

 

'리눅스 (Linux)' 카테고리의 다른 글

리눅스 네트워크 설정  (0) 2015.12.24
서버 ssh 접속이 느린 경우 해결방법  (0) 2015.12.24
리눅스에서 오라클(10g)설치  (0) 2015.12.24
하드디스크 확인방법  (0) 2015.12.24
랜카드 IP주소 알리아스  (0) 2015.12.24
Posted by 랩퍼우