반응형

 

 rsync : 컴퓨터 시스템 상에서 파일을 효율적으로 전송하고 동기화하기 위한 유틸리티

rsync[options][source][target]

옵션

-v : 복사하는 과정을 자세하게 보여줌

-z : 파일을 복사할 때 압축해서 복사함

-h : 읽기 쉬운 형태로 복사 결과들을 출력

-r : 디렉토리 복사할 때 사용

-l : symlink 형태로 복사

-p : 파일과 디렉토리들의 권한 수정

-t : 수정시간 유지

-g : 그룹 속성 유지

-o : 소유자 속성 유지

--devices : root권한이 필요하며 Device 관련된 파일들을 복사해서 생성

--specials : named socket이나 fifo와 같은 특수한 파일들도 복사

데이터 동기화

서버설정

 
 

vi /etc/xinetd.d/rsync 실행

disable = no 로 변경

[rsync_test] => 사용할 rsync 서비스 이름

path = /usr/local/test => 데이터원본 경로

comment = rsync_test => 코멘트

uid = root => 권한 사용자

gid = root => 권한 그룹

hosts allow = => rsync 클라이언트 IP

/etc/init.d/xinetd restart => xinetd 서비스 재시작

rsync -avz[IP]::[서비스명][저장디렉토리]

--delete 옵션 : 원본 소스에 없는 파일은 백업 서버에서 삭제

--dry-run : 실제 파일 복사를 하는것이 아니라 처리될 대상 파일 목록만 출력

 

 

 

7. 커널파라미터란

리눅스 시스템의 커널 변수의 값을 제어하며 시스템을 최적화 할 수 있는 방식 (/proc/sys 디렉터리에 존재)

 

 커널파라미터 설정

 

 

sysctl - 커널 변수의 값을 제어하여 시스템을 최적화할 수 있는 명령

sysctl 명령어

-a :  현재 커널 매개변수와 값을 보여줌

 

-p : sysctl  환경변수파일  (default : /etc/sysctl.conf) 의 설정 상태 표시

 

-n :  특정키에 대한 값을 보여줌                                    -w variable=value :  변수에 값을 설정

 

 

8. tar  테입 아카이브를 위해 고안된 파일 형식과 이런 형식의 파일을 다루는데 사용되는 프로그램

많은 파일을 디렉토리 구조, 파일 속성들을 보존하면서 하나의 큰 파일로 묶는 데 사용

 

명령어

압축

 

압축 해제
분할압축

 

리스트만 확인

 

 그외 명령어

tar [OPTION] [FILE]

-f : 대상 tar 아카이브 지정. (기본 옵션)

-c : tar 아카이브 생성. 기존 아카이브 덮어 쓰기. (파일 묶을 때 사용)

-x : tar 아카이브에서 파일 추출. (파일 풀 때 사용)

-v : 처리되는 과정(파일 정보)을 자세하게 나열.

-z : gzip 압축 적용 옵션.

-j : bzip2 압축 적용 옵션.

-t : tar 아카이브에 포함된 내용 확인.

-C : 대상 디렉토리 경로 지정.

-A : 지정된 파일을 tar 아카이브에 추가.

-d : tar 아카이브와 파일 시스템 간 차이점 검색.

-r : tar 아카이브의 마지막에 파일들 추가.

-u : tar 아카이브의 마지막에 파일들 추가.

-k : tar 아카이브 추출 시, 기존 파일 유지.

-U : tar 아카이브 추출 전, 기존 파일 삭제.

-w : 모든 진행 과정에 대해 확인 요청. (interactive)

-e : 첫 번째 에러 발생 시 중지.

 

 

9. awk - 패턴 탐색과 처리를 위한 명령어

간단하게 파일에서 결과를 추려내고 가공하여 원하는 결과물을 만들어내는 유틸리티

 

=> value  가 포함된 줄 보여주기

 

=> 액션을 사용하여 지정된 파일 내용 출력

=>액션을 통해 첫 번째 필드 값 출력

 

 

=>필드값에 임의 문자열 같이 출력

 

 

=> 지정된 문자열을 포함하는 레코드만 출력

 

 

 xargs - 서버를 운영할 때 다양한 파일을 목록으로 추출하여 삭제, 복사 를 할때 작업을 진행할 수 있게 도움을 주는 명령어

 

=> /etc 속한 r로 시작하는 이름을 가진 .conf 파일 목록 찾아서 출력

 

 

 ps - 리눅스 OS관리시 프로세스를 확인하는 명령어

프로세스 목록을 보여준다.

 

옵션

-f : 풀 포맷으로 보여준다(UID, PID

 

 

-e : 모든 프로세스 출력

 

 

-l : 긴 포맷으로 보여준다

 

 

p, -p : 특정 PID의 프로세스를 보여준다

 

 

 

 

-u : 특정 사용자의 프로세스를 보여준다.

 

 

 pstree

프로세스의 상관관계(부모-자식 관계)를 트리 형태로 출력해주는 명령어

관계를 트리 형태로 출력해주므로 계층 관계를 한 눈에 파악할 수 있음

경로 (/usr/bin/pstree)

옵션

 

-c : 중복된 프로세스도 모두 출력 (기본 값은 트리 내의 동일한 프로세스를 하나의 프로세스로 출력하고 중복된 개수를 출력함)

 

-h : 현재 프로세스와 부모 프로세스를 하이라이트 형태로 출력

 

-H pid : 지정한 pid(프로세스ID)의 프로세스와 부모 프로세스를 하이라이트 형태로 출력

 

-l : 긴 라인을 모두 출력

 

-n : pid를 기준으로 정렬하여 출력

 

-u : uid도 출력

 

-p : pid도 출력

 

-U : UTF-8(유니코드) 형태로 출력3

 

-V : pstree의 버전 정보를 출력

 

-a : 지정한 인수까지 출력

 

 

10. sed

 sed ?

- interactive 기능이 없는 간편한 편집기

- 원본의 수정된 내용을 표시하지만 원본은 변경되지 않음

- shell script 작성시 사용

- line 단위로 처리

 

 sed에서 사용되는 용어

 

pattern space

- sed command를 통해 처리될 라인을 임시로 저장하는 공간

- 해당 라인이 처리되면 스크린으로 출력하고 처리가 끝난 라인은 pattern space에서 제거됨

 

holding buffer

- sed command 'h' option 사용시 사용되는 특수 buffer

- 'h' option을 사용하면 pattern space의 내용을 holding buffer로 복사함

- holiding buffer의 내용은 'G' command에 의해 출력됨

- 라인 이동시 사용

 

address

- 라인의 번호

 

 옵션

 

 

-e : 다중편집

=> 해당 줄 1,2번째 출 출력

 

 

=> infile.txt 파일에서 파일 처음 부터 끝까지 regex  REGEXP 로 바꾸어서 출력

 

-p : 출력

=>2번째 줄 한번더 출력

 

 

-d : 삭제

=> 3번째 줄 을 지우고 출력

 

 

 

-s : 치환

=> infele.txt 파일 처음부터 끝까지 중 abb eff로 치환해서 출력

 

 

모든 줄마다 공백줄 추가

 

 

11. rename : 하나 혹은 하나 이상의 파일명을 일괄 변경할때 사용하는 명령어

 

rename [변경전파일명] [변경후파일명] [대상파일]

 

=> test0 으로 시작 하는 모든 파일을 test로 변경

=> aaa가 들어가는 모든 파일중에서 파일 이름 aaa xy로 변경

 

반응형
반응형

 

 

1. fstab - 부팅시 자동으로 마운트 할 대상을 정의하는 시스템 기본 설정파일

 

리눅스가 부팅과정 중 4단계 Init 프로세스 단계 (/etc/inittab 파일에 정의된 순서에 따라서 시스템 초기화) 에서 /etc/fstab 파일에 정의된 모든 파일시스템을 마운트 함.

 

■ 설정 방법

=> /dev/md127 (raid1 한 장치)을 , /raid0 (디렉토리), ext4(파일 시스템 종류) default(옵션 기본),

1 ( 백업 가능하게 설정), 2 (우선순위 2 – 루트부분 검사 후 검사진행)

[파일시스템장치명] [마운트포인트] [파일시스템종류] [옵션] [dump관련설정] [파일점검옵션]

 

■ 첫번째 항목에 파일시스템 장치명 입력

=> /dev/sdb1 , /dev/sdb2 등과 같이 입력

 

■ 두번째 항목에 마운트 시켜줄 디렉토리 경로 지정

=> /, /home, /backup 등과 같이 지정

 

■ 세번째 항목에 파일시스템 종류 입력

=> ext, ext2. ext3. ext4. iso9660, nfs 

 

■ 네번째 항목에 마운트 옵션 입력

=> default (기본값)

=> auto (부팅시 자동마운트)

=> exec ( 실행파일이 실행되는 것을 허용) 

 

■ 다섯째 항목에 백업 가능/불가능

=> 0 - 백업 불가능하게 설정

=> 1 - 백업 가능하게 설정

 

■ 여섯째 항목에 fsck에 의한 무결성 검사 우선순위 옵션 설정 입력

=> 0 - 무결성 검사 x

=> 1 - 우선순위 1(대부분 루트부분 설정)

=> 2 - 우선순위 2(루트부분 검사 후 검사진행)

 

=> raid를 구성한 md0(device) 이름이 md127로 바뀌는 현상으로 uuid로 등록

※ uuid : 네트워크 상에서 서로 모르는 개체들을 식별하고 구별하기 위한 고유한 이름

 

■ 파일시스템 속성(옵션)

default - rw, nouser, auto, exec, suid 속성을 모두 가지는 속성으로 가장 일반적으로 사용

auto - 부팅시 자동으로 마운트 됨 (↔ noauto)

noexec - 실행파일이 실행되는 것을 허용하지 않음 (↔ exec)

nosuid – SetUID  SetGID의 사용을 허용하지 않음 (↔ suid)

ro – 읽기 전용으로 사용

rw – 읽고 쓰기 사용

user – 일반 계정 사용자들도 마운트를 할 수 있음 (↔ nouser)

discard – 더 이상 유효하지 않은 Data가 존재하는 sector가 있음을 알려, SSD의 수명을 연장

 

 SetUID - 사용자가 실행 파일 소유자로 실행 파일을 실행하고 디렉토리의 동작을 변경 가능

 SetGID - 사용자가 그룹 권한으로 실행 파일을 실행하고 디렉토리의 동작을 변경 가능

 

■ fstab 잘 못 작성 했을 때

부팅 중 마운트를 시도하다 실패 했다는 메세지가 뜨면서 중간에 멈춤

root 패스워드를 입력 하면 repair filesystem 쉘로 로그인 됨

vi /etc/fstab => 파일 내용 수정 안됨

mount -o remount,rw / => 읽기 전용을 읽기 쓰기 로 바꿈

이후 vi /etc/fstab 실행후 내용 수정 및 저장 후 재부팅

 

■ 원격에서 확인하는 법

umount -a 로 마운트 해제 후 ( -a 옵션은 /etc/fstab에 명시된 파일 시스템)

mount -a 로 다시 마운트 시킬 때 오류가 발생하면 오류 발생 부분 수정 후 저장

 

 

2. Fastboot  커널 자체에서 보다 빠른 부팅을 하기 위한 프로세스

설정 방법

vi /boot/grub/grub.conf  vi /boot/grub/menu.lst 파일 실행
=> 커널 라인 끝에 fastboot 삽입

fastboot를 사용하는 이유

서버 장애가 발생하여 리부팅이 진행 되었을 때

디스크 size가 큰 경우 부팅과정에서 fsck가 오랜시간 소요되어 사용하는 옵션

 

 

 

3. 파일 시스템 종류

■ ext – 초기 리눅스에서 사용되었던 파일 시스템 (현재 사용x)

ext2 – 현재도 사용되고 있으며 긴 파일명을 지원하는 것이 특징

ext3 – 저널링 파일시스템으로서 ext2에 비해 파일시스템 복구기능과 보안부분을 크게 향상

ext4 - 16TB 까지만 지원하던 ext3 타입보다 훨씬 더 큰 용량지원, 삭제파일복구 기능 이 있음

swap – 스왑 파일 시스템으로 스왑 공간으로 사용

XFS – 큰파일에 강하고 저널링 지원, 온라인 조각모음과 명령어 한줄로 백업과 복구가 가능

저널링 이란? - 주 파일 시스템에 변경사항을 반영하기 전에, 저널안에 생성되는 변경사항을

추적하는 파일 시스템

 

 

 

 

 fdisk - 리눅스의 디스크 파티션을 생성, 수정, 삭제 할 수 있는 유틸리티

디스크 또는 파티션 최대 크기 약 2.2TB

fdisk -l => 파티션 확인

fdisk /dev/xvda => 실행

Partition number(1-4): 1 => patition 번호 선택(최대 4개 까지 생성가능)

Firsy cylinder (1-17849, default 1): 1 =>시작 실린더 번호 입력 (기본 1)

Last cylinder or +size or +sizeM or +sizeK (1-17849, default 17849):17849 =>마지막 실린더 번호 입력 (기본 17849) , +1G ( 용량 설정)

Command (m for help): w => 설정 저장

=> xvda xvda6(1G)  xvda7(1G) 으로 파티션 나눔

mkfs.ext4 /dev/xvda6 => mkfs 명령어 이용하여 파일시스템 ext4 형식으로 생성

 

 

 parted

2TB 이상의 고용량 디스크의 파티션 구성

설정과 동시에 디스크에 기록됨

파티션을 생성, 삭제, 축소, 확장이 가능

/dev/sdb 를  parted 2TB 로 나눔

 


 
fdisk -l  명령어로 확인

 

 
ext4  파일 시스템으로 생성

 

 
파일 시스템 확인

 

 

 

■ mount : 특정 디렉토리에 파일시스템을 탑재 하는것

주요 옵션

-a : /etc/fstab에 명시된 모든 파일 시스템을 마운트 할때 쓰이는 옵션

-t fs_type : 파일 시스템의 유형을 지정하는 옵션, 지정하지 않으면 /etc/fstab 파일 참조

test : 아무런 옵션 없이 mount 명령어만 실행했을 경우( 마운트된 정보 확인)

-o : 마운트할 때 추가적인 설정을 적용할 때 사용하는 옵션

-o 주요 항목

ro : 읽기 전용 마운트

rw : 일기 쓰기 모드 마운트(기본값)

remount : 해당 파티션을 다시 마운트 (파티션 정보를 바꾸었을 때 사용)

loop : loop 디바이스로 마운트 ( CD-ROM 이미지 파일인 iso를 마운트해서 사용할 때 사용)

noatime : 시스템의 작업을 줄여 성능 향상 가져옴 (파일이 변경되기 전까지 Access time 변경되지 않음

umouint : 마운트 해제

 

옵션

-n : /etc/mtab 파일을 갱신하지 않고 마운트 해제

-v : 자세한 정보를 출력

-t : 파일시스템  종류

-at : /etc/mtab파일에 명시된 모든 파일시스템 중 유저가 입력한 파일시스템만 마운트 해제

-a : /etc/mtab파일에 명시된 모든 파일시스템의 마운트 해제

 

 

■ mount 설정

 

 

=> /parted 폴더 만듦
=> /dev/sdb1 /parted 라는 디렉토리에 마운트함

※ mount [device] [directory]

 

 

 swap  4G 에서 6G 로 수동으로 변경

swap - 리눅스에서 물리적 메모리(RAM)의 용량이 가득 차게될 경우 사용되는 여유 공간

 

swap 만들기

mkdir /swap =>swap 파일 저장할 디렉토리 생성

dd if=/dev/zero of=/swap/swapfile bs=1024 count=2097152

=> swapfile 파일 생성 (2G)

mkswap /swapfile => swap 파일로 포멧

swapon swapfile = > swapfile 즉시 활성화

swapon -s => 확인

vi /etc/rc.d/rc.local => 리부팅시에도 적용되게 설정 하는 파일

=> swapon /swapfile 추가

 

 

3. 각각의 RAID 레벨의 이해

 RAID 0

Concatenate 방식 (두 개 이상의 디스크에 데이터를 순차적으로 쓰는 방법)

장점 : 디스크 기본 공간이 부족할 때 데이터는 보존하며 여분의 디스크를 볼륨에 포함하여 용량 증설 가능

단점 : RAID 0 의 특성상 디스크 중 하나의 디스크라도 장애가 발생하면 복구가 어렵고, 패리티(오류검출기능)를 지원하지 않음

Stripe 방식 (두 개 이상의 디스크에 데이터를 랜덤하게 쓰는 방법)

장점 : 데이터를 사용할 때 디스크 수 만큼 분할하여 쓰기 때문에 속도 향상

단점 : Stripe를 구성할 시 기존 데이트는 모두 삭제

 

 RAID 1(Mirror) => 자주 쓰는 방식

Mirror 볼륨 내의 패리티를 사용하지 않고 디스크에 같은 데이터를 중복 기록하여 데이터를 보존, 적어도 동알한 용량의 디스크 두 개 필요

장점 : 볼륨 내 디스크 중 하나의 디스크만 정상이어도 데이터 보존(안정성 높음)

단점 : 용량이 절반으로 줄고, 쓰기 속도가 느려짐

 

 RAID 2

에러 체크와 수정을 할 수 있도록 Hamming code를 사용, 하드 디스크에서 ECC를 지원 안함(별도의 드라이브에 저장)

ECC를 위한 드라이브가 손상될 경우 문제 발생, RAID 4가 나오면서 거의 사용

 

 RAID 3, RAID 4

RAID 0, RAID 1의 문제점을 보완하기 위한 방식

기본적으로 RAID 0과 같은 striping 구성(성능 보안, 디스크 용량 온전히 사용)

RAID 3 : 데이터를 바이트 단위로 나누어 디스크에 동등하게 분산 기록, 동기화 필수

RAID 4 : 데이터를 블록 단위로 나눠 기록 (RAID 3보다 많이 사용)

 RAID 5

별도의 패리티 정보 디스크를 사용함으로써 발생하는 문제점을 보완하는 방식

장점 : 1개의 하드가 고장 나더라도 남은 하드들을 통해 데이터 복구 가능

 RAID 6

다른 드라이브들 간에 분포되어 있는 2차 패리티 정보를 넣어 2개의 하드에 문제가 생겨도 복구할 수 있게 설계됨

RAID 5보다 데이터의 안정성을 고려

 

 RAID 1+0 , RAID 0+1

RAID 1+0 : 각각 미러링 한 볼륨을 스트라이빙 한 것.

RAID 0+1 : 스트라이핑한 볼륨 두개를 서로 미러링한 것.

공통점 : 가용량이 같고, 속도가 같다.

차이점 : 볼륨이 깨지고, 볼륨을 재구성하는 방법이 다르다

 

=> /dev/xvda6/  와  /dev/xvda7 를  md127  으로 레이드함

 

 

1. soft RAID 구성 및 마운트

fdisk  로 파티션 설정 후

 

 

RAID 구성 ( mdadm --create [볼륨명] --level [레이드레벨] --raid-devices=[디스크 갯수][장치명]....[장치명]

mdadm --create /dev/md0 --level=1 --raid-device=2 /dev/xvda6 /dev/xvda7 => raid1 생성

mdadm --detail /dev/md127 => 상세정보 확인

mkdir /raid0 => raid0 디렉토리 생성

 

mount -t ext4 /dev/md127 /raid0 => 마운트 설정

 

 

2. 문제 생긴 디스크와 soft RAID 구성한 disk 교체

) mdadm 명령에 --fail 옵션을 주어 장애를 발생 시킴

xvda6  상태 불안정함

 

 

mdadm --detail /dev/md127 =>  레이드 정보 확인

=>마찬가지로 /dev/xvda6 상태가 불안정 함

 

 
mdadm --manage /dev/md127 --remove /dev/xvda6 =>  교체할 디스크 제거

=>dev/xvda6 를 제거 함

 

mdadm --manage /dev/md127 --add /dev/xvda6 =>  교체할 디스크 추가

=> 교체할 디스크(/dev/xvda6) 추가

 

 

cat /proc/mdstat => RAID 정보 확인

=>  정상으로 돌아옴

 

 주의할 점 : 디스크 교체 시 남아 있는 디스크의 파티션 정보와 새로 추가할 디스크의 파티션 정보가 같아야함

 

 

4. syslog

- 로깅 메세지 프로그램의 표준

- 다양한 프로그램들이 생성하는 메세지를 저장, 그리고 이용해서 다양한 분석이 가능하도록 로그 메세지 제공

- 프로그램 뿐만 아니라 device와 같은 장비들도 syslog를 사용 할 수 있도록 제공

- 관리자들은 device 장비에서 로그 메세지들을 통해 문제사항이나 성능 등을 확인할 수 있음

- 컴퓨터 시스템의 관리, 보안 알림, 일반적인 정보, 분석, 디버깅 메시지 제공

- 중앙 저장소에 다양한 타입의 시슴템들의 로그데이터의 저장소로 사용되기도 함

 

■ syslog 실행단계

시스템 부팅 → /etc/syslog.conf파일 읽음 → /etc/syslog.pid에 기록 → syslog.conf에 정의된 대로 기록 → cron에 의해 반복 수행

syslogd demon

=> /var/log/cron  의  syslog  자세히 보기

 

시스템에서 발생하는 오류 메시지를 구별하고, 각각의 오류 메시지에 따라서 처리 방법을 결정하는 역할을 담당

/etc/rc2.d/S74syslog 스크립트에 의해 /etc/syslog.conf 파일을 참조하여 실행

로그 수준(level)

emergenecy(0) : 시스템이 전면 중단되는 패닉 상태, 전체 공지가 필요한 상황

alert(1) : 즉각적인 조치가 필요한 상황(시스템 데이터베이스 오류)

critical(2) : 하드웨어 등의 심각한 오류가 발생한 상황

error(3) : 일반적인 에러/오류가 발생한 상황

warning(4) : 경고 메시지

notice(5) : 에러/오류는 아니지만 관리자의 조치가 필요한 상황

informaiton(6) : 의미 있는 정보 관련 메시지

debug(7) : 디버깅용 메시지

 

 logrotate

로그파일을 관리해주는 소프트웨어

로그 순환은 시스템 관리에 사용되는 자동화 된 프로세스로, 로그 파일이 너무 오래되거나 너무 커지면 로그 파일이 압축, 이동, 이름 바꾸기 또는 삭제됨

새로운 수신 로그 데이터는 새로운 새로운 파일로 보내짐 -d  옵션  :  디버그 모드

 

 

 

 

 

 

5. 파일체크시스템(fsck)  리눅스의 파일 시스템의 무결성을 검사하기 위한 도구

옵션

-a : 명령 수행에 대한 확인 질문 없이 무조건 수행

-r : 명령 수행에 대한 확인 질문을 함

-A : /etc/fstab에 정의되어 있는 모든 파일 시스템을 체크

-P : -A 옵션을 사용할 때, 루트 파일시스템을 다른 파일시스템과 병렬로 함께 체크

-R : -A 옵션을 사용할 때, 루트 파일시스템은 체크하지 않고 건너 뜀

-N : 실행을 하지 않고 단지 어떤 것이 실행 되어지는지 보여줌

-T : 검사를 시작할 때 제목을 보여주지 않음

-s : fsck동작을 시리얼화 함

-V : 실행되는 각 파일시스템용 명령을 포함해 자세한 출력을 수행

-t fstype : 점검할 파일시스템의 유형을 지정함

-f : 파일시스템이 이상이 없더라도 강제적으로 파일 시스템을 점검할 때 사용

 

 

특정 프로세스가 해당 파티션을 사용중일 때에는 umount 가 되지 않는다. 그때의 확인 방법은 ?

) /export/home 디렉토리에 이상 이 있음

fuser -cu /export/home => /export/home 를 누가 사용하고 있는지 확인

fuser -ck /export/home => kill signal을 보내 /export/home 에 있는

모든 프로세서 종료

umount /export/home=> umount 설정

 

 

6. xinetd  ? (슈퍼데몬관리)

- 오픈 소스 슈퍼 서버 데몬으로 시스템에서 돌아가며 인터넷 기반 연결을 관리

- inetd 보다 더 강력한 보안을 제공

- 네트워크서비스에 대한 접근제어, login 에 대한 접근제어 역할을 함

 

설정 확인 (vi /etc/xinetd.conf)

instances : 동시에 서비스할 수 있는 서버의 최대 개수 지정

log_type : 어떠한 형태로 로그 기록을 저장할 것인가를 지정

syslog : 지정된 facility에서 syslog로 로그기록이 전달

file : 지정된 크기를 가진 파일명에 로그 기록이 저장

log_on _success : 서버가 시작될 때와 끝날 때 기록될 것을 지정

log_on_failure : 서버가 리소스 부족으로 시작될 수 없거나 설정 파일내의 규칙에 의한 접근이 거부되었을 때 기록될 값들을 지정하는 속성

cps : 초당 요구수, 초당요구수 이상 발생시 제한시간

only_from : 특정서비스를 이용 가능한 원격호스트를 설정

per_source : 똑같은 ip 주소로 로컬서비스에 접속할 수 있는 최대 접속수를 지정해준다.

no)access : 서버 서비스를 이용하지 못하도록 서버에 접근하지 못하게 할 원격 호스트의 주소를 지정해준다.

 

 

 

 

반응형
반응형

1. power

전원이 들어오면 CPU  ROM(Read Only Memory)  저장된 Bios (Bios Input Output System) 실행한다.

BIOS 프로그램은 전원공급과 함께 메모리의 특정번지에 자동 로드된다.

CPU 정원공급과 함께 특정번지의 BIOS프로그램을 자동 실행한다.

 

 

2. ROM BIOS에서 지정된 부트 드라이브로 부팅 시작

- 자체진단기능(POST) => Power On Self Test

 

- POST 과정

◇CPU TEST

기본 컨트롤러들의 초기화

키보드 초기화

◇ROM BIOS 테스트

◇CMOS RAM 테스트

메모리 테스트

캐시 초기화

◇INTERRUPT VECTOR TABLE(IVT) 초기화와 설치

◇CMOS RAM CHECKSUM 테스트

 

 CHECKSUM => 중복 검사의  형태, 오류 정정을 통해 공간이나 시간속에서 송신된 자료의 무결성을 보호하는 방법

키보드 테스트와 초기화

 

■ POST 과정이 이상 없이 진행 완료하면 검색된 부팅매체((하드디스크, CD_ROM, 플로피 디스크 )에서 부트로더(GRUB) 불러들인다.

 

■ BIOS  POST(Power On Self Test /자체진단기능)  수행하여 하드웨어 장치들을 인식하며 이상 유무를 확인

 

 하드디스크를 인식하며 첫번째 섹터에서 MBR(Master Boot Record) 읽어 들여 부트로더를 실행

 

■ MBR – 파티션  기억 장치의  번째 섹터에 위치하는 512 Byte 시동 섹터

 

■ Boot Code

=> 부팅 가능한 파티션을 찾아 해당 파티션의 부트 섹터를 호출해주는 역할

=> 부트코드가  생성되어있지 않거나 부팅이 가능한 파티션이 없으면 에러메세지 출력

 

■ Partition Table

=> 파티션의 정보가 포함된 부분

=> 16byte 나뉘어져서 4개의 파티션을 갖음

=> MBR 4개의 파티션을 가짐

=> MBR 앞의 파티션 세개는  파티션 이라 부르며 마지막 파티션은 확장 파티션이라 부름

 

■ Signature

=> 해당 섹터의 오류 유무를 확인하기 위한 

부트로더가 메모리에 적재되면 BIOS 종료되고, 시스템 제어권은 부트로더가 갖게 된다.

 

 

3. 부트로더(GRUB) 단계

운영체제가 시동되기 이전에 미리 실행되면서 커널이 올바르게 시동되기 위해 필요한 모든 관련 작업을 마무리하고 최종적으로 운영체제를 시동시키기 위한 목적을 가진 프로그램을 말한다.

 

 리눅스에서 사용하는 부트로더는 LILO(Linux Loader) GRUB 있다.

GRUB 커널 이미지를 불러들이고 시스템 제어권을 커널에 넘겨준다.

 

※ 커널 이미지  커널이 하나의 파일로 디스크에 저장되어 있는 

 

■ GRUB(GRand Unified Bootloader)

환경 설정 파일 : /boot/grub/grub.conf(/etc/grub.conf)

실행 파일 : /sbin/grub

설정 옵션 : /boot/grub/grub.conf

 

default=0 =>기본 부팅 레이블

timeout=5 => 부팅시 타임아웃 설정

splashimage=(hd0,0)/grub/splash.xpm.gz => splashimage 위치

hiddenmeny => GRUB 메뉴 숨김

root (hd0,0)=>root 파티션 위치

=> 설정  grub2-mkconfig -o /boot/grub2/grub.cfg 명령어로 적용

 

 

 

4. 커널 단계

커널

=> 시스템에 존재하는 자원을 효율적으로 관리하는 자원 관리자

=> 프로세서와 메모리에 상주하면서 디바이스나 메모리 같은 하드웨어 자원을 관리하고 프로세스의 스케줄을 관리하여 다중 프로세스 구현

=> 시스템에 연결된 입출력을 처리하는 운영체제의 핵심 역할 수행

 

- /etc/grub/grub.conf 파일에 의해서 커널이 메모리상에서 실행되면, 하드웨어를 점검하고 /var/log/dmesg 파일에 기록

- 루트 파일시스템(/) 읽기 전용으로 마운트 한다(만약 마운트 실패시 "커널 패닉" 메세지를 출력)

- 커널은 swapper 프로세스(PID 0) 호출함

- swapper 커널이 사용할  장치드라이브들은 초기화하고 init 프로세스(PID 1) 실행하게 

- /sbin/init 프로세스가 실행되면서 /etc/inittab 파일을 읽어들여서  내용들을 차례대로 실행함

 

 

5. 부팅  파일 시스템 마운트

리눅스가 부팅과정  Init 프로세스 단계 /etc/inittab 파일에 정의된 순서에 따라서 시스템 초기화에서 /etc/fstab 파일에 정의된 모든 파일 시스템을 마운트 

[파일시스템장치명][마운트포인트][파일시스템종류][옵션][dump관련설정]
[파일점검옵션]

 

 

 

6. 시스템 초기화 프로그램(init) 작동

/etc/inittab 설정 파일에서 시스템 부팅레벨을 확인하여 부팅

 

name : [level-number]:[options]:[process -option]
name -  항목() 이름들(id, si, pr, pf, ca)
level-number - 해당행의 설정내용을 어떤 부팅레벨에서 실행할 것인가를 설정

=> 0 : 시스템 중지
=> 1 : 단일 사용자 모드, single 모드로 쉘로 바로 부팅
=> 2 : NFS 기능을 제외한 다중 사용자 모드
=> 3 : 모든 기능을 포함한 다중 사용자 모드
=> 4 : 사용하지 않음
=> 5 : X-Window 부팅
=> 6 : 시스템 리부팅(reboot)

시스템이 부팅되면 init 프로세스는 /etc/rc.d/rc.sysinit 스크립트를 실행시켜 네트워크 설정, 호스트 이름설정, 하드디스크 최적화 등의 작업을 수행하고 /etc/inittab 설정된 런레벨에 따라 해당하는 /etc/rc.d/rc[0-6].d 스크립트를 실행함

)/etc/rc.d/rc.3d

=> S08iptables 8번째 작업으로 /init.d/iptables 프로세스를 시작시킴

 

서버 부팅 시 마다 자동 스크립트 실행 => /etc/rc.d/rc.local 파일에 저장

/rc.local 99번째(마지막)이므로 부팅시 가장 나중에 적용

 

 

7. 로그인

부팅 과정의  부분으로 init 많은 텍스트모드 로그인 프롬프트를 실행함

유저네임과 패스워드를 입력하여 쉘로 들어감

 

 

 

반응형

+ Recent posts