목차
1) 프로세스 관리
2) 디스크 통계 보는 법
3) 마운트 개념
4) 데이터 정렬,저장
리눅스 관리자가 힘든 일은 시스템에서 무엇이 실행되고 있는지를 추적하는 것
프로세스 : 프로그램이 시스템에서 실행되는 것
ps
리눅스 시스템에서 사용되는 GNU의 ps명령은 세가지 유형의 커맨드라인 매개변수 지원
교재 p 113
확인
ps -ef
: 시스템에서 실행되고 있는 모든 것을 보여줌교재 p 115-116
확인
ps -l
: 프로세스에 대한 자세한 코드(열)을 보여줌ps --forest
: 프로세스 정보를 계층 형식으로 표시하고 ASCII 문자를 사용해 차트를 그려줌ps 명령어는 특정 시점에 대한 정보만을 표시하지만 , top 명령어는 실시간 모드로 동작
1. 첫번째 줄
현재시각+시스템이얼마나 오래 동작되었는지+로그인한 사용자의 수+시스템의 평균 부하
얼마나 많은 프로세스 실행+휴면상태인지+좀비인지
전반적인 CPU 정보+프로세스의 소유주와 프로세스의 상태에 따라 여러 범주로 CPU사용률 나누어 표시
프로세스 목록
리눅스에서 프로세스는 신호로 서로 통신
리눅스 프로세스 신호
신호 | 이름 | 설명 |
---|---|---|
1 | HUP | 연결 끊어짐 |
2 | INT | 인터럽트 |
3 | QUIT | 실행중지 |
9 | KILL | 무조건 종료 |
11 | SEGV | 세그먼트 위반을 생성 |
15 | TERM | 가능하면 종료 |
17 | STOP | 무조건 중지하지만 종료되지는 않음 |
18 | TSTP | 중지하거나 일시정지하지만 백그라운드에서 계속 실행 |
19 | CONT | STOP 또는 TSTP 후 실행 재개 |
주의할점 : 프로세스 신호를 보내려면 나 자신이 그 프로세스의 소유자이거나 루트 사용자로 로그인
ex) KILL [프로세스ID]
ex) KILL -s HUP [프로세스ID] (기본 보다 좀더 강력)
ex) killall http* : http로 시작하는 모든 프로세스 죽임
자주 사용하는 신호 : KILL/TERM 을 많이 사용
- kill -9가 아니라 그냥 kill 하면 기본 term 사용(term을 사용하면 좋음,따라서 kill 을 사용하기)
- killall / pkill 모두 강력한 프로세스
pkill -f [프로세스명]
:프로세스명 완전 일치하는 것만 죽임
grateful shutdown이란?
Graceful shutdown은 프로그램이 종료될 때 최대한 side effect를 내지 않기 위해 로직들을 잘 처리하고 종료하는 것을 의미한다.만약 강제로 종료된다면, 데이터의 손실과 비즈니스 로직이 제대로 처리되지 않는 채로 종료될 수 있다.
- 리눅스 파일 시스템은 하나의 가상 디렉토리에 모든 미디어 디스크를 결합
- 시스템에 새로운 미디어 디스크를 사용하려면 먼저 이를 가상 디렉토리에 배치해야함 = 이 작업이 마운트
이렇게 책에 적힌 내용으로는 이해가 잘 안됨
- 예를 들어 usb를 꼽으면 내컴퓨터 폴더에 usb파일이 뜨면서 자동으로 연결. 이렇게 디스크와 같은 물리적인 장치를 특정 위치 즉 디렉터리에 연결시켜주는 것을 마운트라고 함
- 요새는 PnP(Plug and Play = 디바이스를 꼽기만 하면 알아서 설정되고 플레이되는)
- 윈도우에서는 자동으로 마운트 과정이 실행되지만, 리눅스의 경우 특히 서버환경의 경우 직접 연결해줘야함
따라서, 관리자가 특정 디렉터리에 붙이는 작업을 수행하는 것이 mount 작업. 하지만 SE분들에게 부탁해서 받는 경우가 많음.
mount
: 현재 시스템에 마운트 된 미디어 장치의 목록 표시mount -t type device directory
unmount [directory | device]
df
: 마운트된 모든 디스크의 상황 볼 수 있음df -h
: 디스크 공간을 사람이 이해할 수 있는 형태로 보여줌
df
:리눅스에 디스크 공간이 얼마나 많이 있는지 사용 (df -h(이해할수형태로단위붙여나옴))
du
: 현재 디렉토리에 있는 모든 파일,디렉토리 및 하위 디렉토리를 표시하고 각각의 파일이나 디렉토리가 얼마나 많은 디스크 블록을 차지하고 있는지를 보여줌
du
: 특정 디렉토리 디스크 사용량 확인
ex) 예를 들어 mysql 설치 시, data 파일이 저장되는 디렉토리 (*.ibd) -> du 명령어로 ibd파일 전체 용량 확인할 수 있음
sort file
: 지정된 언어의 표준 정렬 규칙을 사용해서 정렬sort -n file
사용sort -M file
: 월을 정렬할 때 사용sort -t ':' -k 3 -n /etc/passwd
sort(정렬)
> uniq(카운팅)
: 정렬 후, 각 항목 카운팅 (자주 사용됨)
du
+sort
사용
du -sh * | sort -nr
: 디렉토리에 있는 모든 파일,디렉토리,하위디렉토리 표시하고 사람이 이해가능한 형태로 출력 + 숫자값/내림차순 정렬
grep [option] pattern [file]
grep three file
: file 에서 three 포함된 줄 찾기grep -v t file
: file에서 t 가 없는 줄 찾기grep -n t file
: 패턴과 일치하는 내용이 발견되는 줄 번호까지 출력grep -c t file
: 패턴과 일치하는 내용이 포함된 줄이 몇개인지 알고 싶을 때grep -e t -e f file
: 찾으려는 패턴이 t/f 2개 이상이라면 각 패턴에 -e 매개변수 붙이기grep [tf] file
: t/f 중 하나를 포함하는 패턴과 일치하는 줄을 찾음리눅스 압축 유틸리티
gzip my_file
: my_file 을 압축 (확장자 .gz)
리눅스 전용 (압축 / 보관) 아카이브 도구
tar 기능 [옵션] 대상1 대상2 ...
기능 | 설명 |
---|---|
-A | 기존 tar 아카이브 파일에 기존의 또다른 tar 아카이브 파일 추가 |
-c | 새로운 tar 아카이브 파일 작성 |
-d | tar 아카이브 파일과 파일시스템 사이의 차이점 확인 |
-r | 기존의 tar 아카이브 파일의 끝에 파일 추가 |
-t | 기존의 tar 아카이브 파일에 들어있는 내용의 목록 보여줌 |
-u | 기존의 tar 아카이브 파일에 있는 같은 이름의 파일보다 최신 파일이 있다면 추가 |
-x | 기존 아카이브 파일에서 파일 추출 |
옵션 | 설명 |
---|---|
-C dir | 지정된 디렉토리로 변경 |
-f file | 결과를 파일로 출력 |
-j | 출력을 압축하기 위해 bzip2로 보냄 |
-p | 모든 파일의 사용권한 유지 |
-v | 처리된 파일의 목록 출력 |
-z | 출력을 압축하기 위해 gzip으로 보냄 |
시스템 관리자
- 프로그램 모니터링(프로세스 모니터링/프로세스 중단 등)
- 시스템 디스크 사용량 추적
참고링크