'OPS'에 해당되는 글 23건

  1. 2015.04.26 bind9
  2. 2015.04.26 dhcp
  3. 2015.04.26 fdisk
  4. 2015.04.26 init
  5. 2015.04.26 send mail
  6. 2015.04.26 raid
  7. 2015.04.26 quota
  8. 2015.04.26 LVM
  9. 2015.04.26 NIS
  10. 2015.04.26 NFS
2015. 4. 26. 01:11

DNS(bind)


※ 데비안 5.03기반의 자료

- conf파일 설정

# vim /etc/bind/named.conf

--------------------------------------------------------------------

include "/etc/bind/named.conf.options";// 여기 있는 파일의 내용을 현재 파일에 추가

...

zone "자신이 하고 싶은 도메인" {

type 타입설정;

file “파일이름 혹은 파일경로”;

allow-update { 영역전송해줄 IP; };

masters { 마스터IP주소; };

};

include "/etc/bind/named.conf.local";// 여기 있는 파일의 내용을 현재 파일에 추가

--------------------------------------------------------------------

zone 지시문에 적을 수 있는 것은 정방향과 역방향이 있다. 정방향은 도메인을 IP로 매핑하기위해 사용하며 skill.com 이런 식 으로 도메인을 적는다. 역방향은 IP를 도메인으로 매핑하기위해 사용하며 192.168.0.0/24은 0.168.192.in-addr.arpa 이렇게 적어 준다. 또 172.16.0.0/16이라면 16.172.in-addr.arpa로 적어 준다. 그러니 네트워크 주소에서 호스트부분을 지워주고 적는다. 그러나 예외가 있는데 네트워크 주소에서 0이 없는 경우는 3옥테트를 적어준다. 예를 들어보면 192.168.10.128/25는 10.168.192.in-addr.arpa로 적어준다. 여기 적힌 도메인을 존파일에서는 origin이라 부름

type 지시문 부분에 쓸 수 있는 옵션으로는 master와 slave가 있다. master는 자신이 직접 존파일을 만들어서 자신이 관리하며 호스트 추가 등 존파일 설정을 마음대로 할 수 있다. slave는 미리 존파일이 설정되어있는 master서버로부터 master 서버의 존파일을 받아와 서비스만 한다.

file 지시문은 zone파일의 위치를 지정한다. 만약 그냥 파일이름만 지정한다면 directory 옵션에서 지정되어 있는 경로에 파일이 있어야 한다. named.conf 파일이나 include되어있는 파일에 directory 옵션이 있을 것 이다. 만약 경로로 적어준다면 /etc/bind/db.skill.com 이런 식으로 적어준다.

allow-update 지시문은 slave서버에게 자신의 영역전송을 허락 해 줄때 적는다. 딱 하나의 서버에게만 허락해 줄 수도 있고(허락해줄 서버IP), 모든 서버에게 허락해준다면 any를 적는다. allow-update랑 같은 옵션으로 allow-transfer이 있다. 만약 slave서버에게 영역전송 허락을 안 해 준다면 지시문을 적을 필요 없다. 영역전송을 하기 싫지만 지시문을 적고 싶다면 옵션은 none을 적는다.

masters 지시문은 자신의 타입이 slave일 때 영역 전송을 받을 master서버의 IP 주소를 적는다. 만약 master인 경우는 적을 필요가 없음.

· zone파일 설정

- 정방향

※ 편의상 skill.com의 존파일이라고 생각하고 적음

# cp /etc/bind/db.local /var/cache/bind/db.skill.com// 샘플파일을 설정파일에 복사

-> 존파일에서 file “파일이름 혹은 파일경로”; 이행의 적혀있는 경로에 만들어 줘야 함.

# vim /var/cache/bind/db.skill.com

--------------------------------------------------------------------

$TTL604800

@INSOAskill.com. root.192.168.0.1. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

;

@INNS192.168.0.1

@INA192.168.0.1

wwwINA192.168.0.1

INMX10skill.com.

downINCNAMEwww

--------------------------------------------------------------------

$TTL 604800

-> 다른 서버에서 자신의 정보를 가져 갓을 시 그것이 얼마나 머물 건지(초 단위)

@INSOAskill.com. root.192.168.0.1. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

-> @은 orgin을 뜻함 conf파일에서 정해준 기본 도메인을 뜻한다. 그러니 conf파일에서 zone "skill.com" { 이렇게 적어줬다면 orgin은 skill.com이 됨. 이 것을 만약 @대신 도메인으로 적어준다면 skill.com. 이라고 적어 줘야함 맨 뒤에 . 을 찍지 않으면 뒤에 도메인이 한번 더 붙음(skill.com.->skill.com skill.com->skill.com.skill.com)

SOA는 해당 도메인에 대해 여기서 설정한 네임서버가 모든 정보를 가지고 있음을 알려 주는 레코드 해당 도메인에 대한 네임 서비스의 모든 권한이 여기 있다는 것을 의미 뒤에 192.168.0.1.은 네임서버를 뜻하고 그다음 오는 것은 관리자 메일 주소를 뜻함

2 ; Serial 은 존파일의 버전을 뜻함 파일을 수정했다면 값을 하나 올림(꼭 할필요는 없지만 편의상) 보통 날짜로 표시함(2009112511)

604800 ; Refresh 은 보조네임서버가 이 주기 마다 주네임서버의 파일을 업데이트 받아옴 (단위는 초)

86400 ; Retry 은 보조네임서버가 1차로 접근이 안 되면 계속 주기 적으로 접근하는데 그 주기를 설정 (단위 초)

2419200 ; Expire 은 보조네임서버가 1차로 접근이 안 되면 Retry단위로 계속 주네임서버에 접근 한다고 했는데 계속 Retry 단위로 접근을 하다가 Expire시간 동안 연결이 안 되면 주네임서버 에서 도메인정보가 삭제 되었 거나 등등 도메인이 없다고 판단하여 더 이상 주네임서버에 접근을 하지 않음

604800) ; Negative Cache TTL 은 다른 서버에서 자신의 정보를 가져 갓을 시 그것이 얼마나 머물 건지(초 단위) 그러니 특정 도메인의 정보가 변경되었을 경우, 이 시간동안은 변경된 정보가 적용되지 않을 수 있음

@INNS192.168.0.1

-> @(skill.com)의 네임서버를 설정, 또 IN 앞에 아무것도 안 적으면 뒤에 .이 안 붙었으니 자동으로 skill.com을 뜻하는 것이 됨

@INA192.168.0.1

-> @(skill.com)을 매핑해줄 아이피 설정, IN앞에 아무것도 안 적으면 뒤에 .이 안 붙었으니 자동으로 skill.com을 뜻하는 것이 됨

wwwINA192.168.0.1

-> www.skill.com을 매핑해줄 아이피 설정 www 뒤에 .이 안 붙어 있으니 자동으로 skill.com으로 붙음(www = www.skill.com.)

INMX10skill.com.

-> skill.com(아무것도 안 썻으니 자동으로 붙음)의 메일들을 skill.com 서버로 보냄 그러니 webmaster@skill.com의 메일을 skill.com서버로 전달 그리고 10은 메일서버의 우선권임 숫자가 낮은 서버를 사용

downINCNAMEwww

-> down.skill.com(down뒤에 점이 없으므로)을 www.skill.com(www뒤에 점이 없으므로)로 매핑 그러니 원본은 있어야하고 별칭은 없어도 된다. 저렇게 되면 www.skill.com의 정보를 down.skill.com이 그대로 받아감 www.skill.com이 192.168.0.1이라면 down.skill.com도 192.168.0.1이고 www.skill.com이 192.168.0.10으로 바뀌면 down.skill.com도 192.168.0.10이 되는 것이다.

※ 존파일에서는 어느 위치든 점 찍는것을 유의

- 역방향1

※ 편의상 0.168.192.in-addr.arpa의 존파일이라 생각 하고 적음

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.0.168.192

--------------------------------------------------------------------

$TTL 604800

@INSOAskill.com.root.skill.com (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800); Negative Cache TTL

;

@INNSskill.com.

1INPRTdebian.skill.com.

--------------------------------------------------------------------

1INPRTdebian.skill.com.

-> 192.168.0.1을 debian.skill.com으로 매핑

- 역방향2

※ 편의상 16.172.in-addr.arpa의 존파일이라 생각 하고 적음

# cp /etc/bind/db.127 /var/cache/bind/db.16.172

# vim /var/cache/bind/db.16.172

--------------------------------------------------------------------

$TTL 604800

@INSOAskill.com.root.skill.com (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800)

; Negative Cache TTL

;

@INNS192.168.0.1

1.10INPTRdebian.skill.com.

--------------------------------------------------------------------

1.10INPTRdebian.skill.com.

-> 172.16.10.1 을 debian.skill.com으로 매핑

- 정방향 마스터 실습

# vim /etc/bind/named.conf// conf파일 설정

--------------------------------------------------------------------

// This is the primary configuration file for the BIND DNS server named.

.

.

include "/etc/bind/named.conf.options";

.

.

zone "skill.com" {

type master;

file "/etc/bind/db.skill.com";

};

include "/etc/bind/named.conf.local";

--------------------------------------------------------------------

# cp /etc/bind/db.local /etc/bind/db.skill.com

# vim /etc/bind/db.skill.com

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

@INA192.168.0.1

wwwINA192.168.0.1

ns1INA192.168.0.1

--------------------------------------------------------------------

# /etc/init.d/bind9 restart

# nslookup

> skill.com

Server:192.168.0.1

Address:192.168.0.1#53

Name:skill.com

Address: 192.168.0.1// 자신이 설정한 도메인에 설정한 IP가 나오면 성공

- 역방향 마스터 실습

# vim /etc/bind/named.conf

--------------------------------------------------------------------

// This is the primary configuration file for the BIND DNS server named.

.

.

include "/etc/bind/named.conf.options";

.

zone "0.168.192.in-addr.arpa" {

typemaster;

file"db.0.168.192";

};

include "/etc/bind/named.conf.

--------------------------------------------------------------------

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.0.168.192

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com. root.skill.com. (

1; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

1INPTRskill.com.

1INPTRwww.skill.com.

1INPTRns1.skill.com.

--------------------------------------------------------------------

# /etc/init.d/bind9 restart

# nslookup

> 192.168.0.1

Server:192.168.0.1

Address:192.168.0.1#53

1.0.168.192.in-addr.arpaname = skill.com.

-> 자신이 설정해준 값이 나오면 성공

※ 주의 할 점은 역방향은 zone파일에서 origin이 0.168.192.in-addr.arpa이다.

- 영역전송을 위한 정방향, 역방향 마스터 실습

※전제 마스터IP:192.168.0.1, 슬레이브IP:192.168.0.10

· 마스터 서버 설정

# vim /etc/bind/named.conf

--------------------------------------------------------------------

// This is the primary configuration file for the BIND DNS server named.

.

.

.

zone "skill.com" {

type master;

file "db.skill.com";

allow-update { 192.168.0.10; };

};

zone "0.168.192.in-addr.arpa" {

type master;

file "db.0.168.192";

allow-update { 192.168.0.10; };

};

.

.

--------------------------------------------------------------------

# cp /etc/bind/db.local /var/cache/bind/db.skill.com

# cp /etc/bind/db.127 /var/cache/bind/db.0.168.192

# vim /var/cache/bind/db.skill.com

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

@INA192.168.0.1

ns1INA192.168.0.1

--------------------------------------------------------------------

# vim /var/cache/bind/db.0.168.192

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com. root.skill.com. (

1; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800 ); Negative Cache TTL

;

@INNSns1.skill.com.

1INPTRskill.com.

1INPTRwww.skill.com.

1INPTRns1.skill.com.

--------------------------------------------------------------------

# /etc/init.d/bind9 restart

· 슬레이브 서버 설정

# vim /etc/bind/named.conf

--------------------------------------------------------------------

// This is the primary configuration file for the BIND DNS server named.

.

.

zone "skill.com" {

type slave;

file "db.skill.com-sv";

masters { 192.168.0.1; };

}

zone "0.168.192.in-addr.arpa" {

type slave;

file "db.0.168.192-sv";

masters { 192.168.0.1; };

};

.

.

--------------------------------------------------------------------

# /etc/inid.d/bind9 restart

# ls /var/cache/bind

db.0.168.192-sv db.skill.com-sv// 적어준 파일이 자동으로 받아오나 확인

# nslookup

> server 192.168.0.10// 아이피를 슬레이브 아이피로 설정

Default server: 192.168.0.10

Address: 192.168.0.10#53

> skill.com

Server:192.168.0.10

Address:192.168.0.10#53

Name:skill.com// 설정해준대로 받아오나 확인

Address:192.168.0.1

> 192.168.0.1

Server:192.168.0.10

Address:192.168.0.10#53

1.0.168.192.in-addr.arpaname = www.skill.com.// 설정해준대로 받아오나 확인

1.0.168.192.in-addr.arpaname = skill.com.

1.0.168.192.in-addr.arpaname = ns1.skill.com.

- 라운드 로빈 구성

· 라운드 로빈 이란

라운드 로빈은 엑세스의 분산을 위해 사용한다. DNS서버에서 skill.com 도메인을 두 개의 IP로 매핑 하여 첫 번째 IP에 엑세스했다 두 번째 IP에 엑세스했다 이런 식으로 분산을 위해 사용한다.

그러니 www.skill.com으로 매핑 되는 웹서버A가 있는데 사용자 폭주로 서버가 다운이 자주 된다. 이 경우 웹서버를 하나 더 늘려 웹서버B를 만든다. 그리고 DNS 서버에서 www.skill.com에 호스트를 웹서버A에도 매핑하고 웹서버B에도 매핑하면 사용자가 A를 갔다 B를 갔다 하니 한 서버에서 처리하는 일이 반으로 감소한다.

· 라운드 로빈 실습

# vim /etc/bind/named.conf

--------------------------------------------------------------------

zone "skill.com" {

type master;

file "db.skill.com";

};

--------------------------------------------------------------------

# cp /etc/bind/db.local /var/cache/bind/db.skill.com

# vim /var/cache/bind/db.skill.com

--------------------------------------------------------------------

$TTL604800

@INSOAns1.skill.com.root.skill.com. (

2; Serial

604800; Refresh

86400; Retry

2419200; Expire

604800; Negative Cache TTL

;

INNSns1.skill.com.

INA192.168.0.1

wwwINA192.168.0.1// 서버A

wwwINA192.168.0.2// 서버B

ns1INA192.168.0.1

--------------------------------------------------------------------

# /etc/init.d/bind9 restart

# nslookup

> server 192.168.0.1

Default server: 192.168.0.1

Address: 192.168.0.1#53

> www.skill.com

Server:192.168.0.1

Address:192.168.0.1#53

Name:www.skill.com

Address: 192.168.0.1// 설정해준 값 나오면 성공(한 도메인에 두 개의 아이피)

Name:www.skill.com

Address: 192.168.0.2// 설정해준 값 나오면 성공(한 도메인에 두 개의 아이피)

- 존파일 기본 경로 변경

# vim /etc/bind/named.conf/options

--------------------------------------------------------------------

.

.

directory "/var/cache/bind";// 이 부분을 변경 하고픈 경로로 설정

notify yes// zone 업데이트시 2차 dns에 알림

.

--------------------------------------------------------------------

directory 지시문 변경 후 필요한 존파일들은 변경한 경로로 이동해줌

'OPS > LInux' 카테고리의 다른 글

grub  (0) 2015.04.26
apache on debian  (0) 2015.04.26
dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
init  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:08

DHCP


- 기본설정

# vim /etc/dhcp3/dhcpd.conf

--------------------------------------------------------------------

※ 처음 설치하면 샘플로 설정 되 있는 것이 있는데 주석 처리나 지워줌

subnet 192.168.0.0 netmask 255.255.255.0 {// 할당할 네트워크를 적어줌

range 192.168.0.10 192.168.0.30;// 할당할 IP주소 영역(10~30)

option routers 192.168.0.1;// 게이트워에 주소

option domain-name-servers 192.168.0.1;// dns서버 주소

option domain-name "debian dhcp";// 할당한 영역이름

default-lease-time 600;// 기본 임대 시간(초단위)

max-lease-time 600;// 최대 임대 시간(초단위)

}

host client {// 강제 할당할 때 사용함 client는 할당 받는 컴퓨터이름임

hardware ethernet 00:01:39:01:16:20;// 할당 받는 컴퓨터의 맥어드레스

fixed-address 192.168.0.50;// 할당 해줄 IP

# domain-name-servers 192.168.0.1;// 따로 네임서버 설정해주는 것도 가능

}

--------------------------------------------------------------------

# /etc/init.d/dhcp3-server restart

'OPS > LInux' 카테고리의 다른 글

apache on debian  (0) 2015.04.26
bind9  (0) 2015.04.26
fdisk  (0) 2015.04.26
init  (0) 2015.04.26
send mail  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:07

fdisk


fdisk는 파티션을 나눠 주는 프로그램

명령어 형식 ‘fdisk <하고픈 디스크>’

# fdisk /dev/sdb// sdb를 나눔

The number of cylinders for this disk is set to 30401.

.

.

Command (m for help):// 이런식으로 커맨드가 바뀜

--------------------------------------------------------------------

- 2G 파티션 만들기 실습

# fdisk /dev/sdb

Command (m for help): n// 파티션 만들기

Command action

eextended

pprimary partition (1-4)

p// p를 입력(주파티션)

Partiton number (1-4):1// 1번 주파티션을 씀

First cylinder (1-30401, default 1):// 그냥 엔터를 치거나 1을입력한뒤 엔터

Last cylinder or +...K (1-30401, default 30401): +2040M//+2040M(2G)를 입력

Command (m for help): p

.

.

/dev/sdb112502008093+83Linux

Command (m for help):

--------------------------------------------------------------------

- 파티션 id swap으로변경

Command (m for help): p

.

.

Device BootStartEndBlocksIdSystem

/dev/sdb11125100403183Linux

-> 파티션 id가 Linux인것을 확인

Command (m for help): t// 파티션 id 변경

Selected partition 1// 파티션이 하나라면 몇 번째 파티션을 쓰겟냐는 문구가 안나오고 여러개라면 몇 번째 아이디를 선택하라 나옴

Hex code (type L to list codes): 82// 변경할 id를 적어줌 l을 누르면 목록이 나옴 거기서 보고 선택해서 입력하면됨

스왑은 82이므로 82를 입력

Command (m for help): p// p를 눌러보면 swap으로 바뀐 걸 볼수있음

.

.

/dev/sdb11125100403182Linux swap / Solaris

Command (m for help):

--------------------------------------------------------------------

- 파티션 삭제

Command (m for help): d// 파티션 삭제

Partition number (1-4): 1// 삭제할 파티션 번호를 입력. 만약 파티션이 하나밖에 없다면 Selected partition 1메세지가 뜨며 바로삭제

Command (m for help):

--------------------------------------------------------------------

fdisk 옵션으로는

a 부트 가능한 플래그로 변경

b bsd 디스크 레이블을 편집

c 도스 호환 플래그로 변경

d 파티션 삭제

l 알려진 파티션 형태의 목록

m 이 메뉴를 출력

n 새로운 파티션 추가

o 새로운 도스 파티션 테이블을 생성

p 파티션 테이블을 출력

q 변경을 저장하지 않고 종료

s 새로운 Sun 디스크 레이블을 생성

t 파티션의 시스템 id를 변경

u 표시/엔트리 단위를 변경

v 파티션 테이블을 점검

w 디스크에 테이블을 기록하고 빠져나감

● mkfs

Fdisk를 한 후 mkfs를 이용해 포맷을 해야 파티션을 이용할 수 있다

포맷은 mkfs -t <포맷형식> <장치> 이렇게 한다.

보통 리눅스에서 ext3형식을 많이 쓰니 하나 해본다면

# mkfs -t ext3 /dev/sdb1// sdb1을 ext3형식으로 포맷

'OPS > LInux' 카테고리의 다른 글

bind9  (0) 2015.04.26
dhcp  (0) 2015.04.26
init  (0) 2015.04.26
send mail  (0) 2015.04.26
raid  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:07

init


init은 리눅스 부팅 커널 다음 넘어오는 차례로 로그인 프롬포트 나오기 전까지 시스템 점검, 프로세스 관리 등의 역할을 한다. 모든 프로세서의 조상인 1번 PID를 갖고 있다.

inittab파일의 형식 id:runlevels:action:command

콜론으로 구분

첫째 항목(id)은 식별자로 어떤 단어든 상관없음 단 다른 것과 겹치면 안 되고 최대 4자리 그리고 tty를 지정하는 것은 맨 끝에 tty숫자가 와야 함. 예) dd1:..... tty1

둘째 항목(runlevels)은 그 줄의 명령이 실행될 실행레벨

셋째 항목(action)은 init이 그 항목을 어떻게 처리할지(예를 들어 1번만 실행, 종료될 때마다 다시 실행 등)

넷째 항목(command)는 init이 이 항목에 대해 실행할 명령

action 옵션

-respawn:프로세서 종료 시 항상 다시 시작

-wait:지정된 run-level이 되면 실행하고, init은 이 프로세서가 종료되기를 기다림

-once:지정된 run-level이 되면 한번만 명령어를 실행

-boot:시스템 부팅 때 그 프로세서를 실행 이때 run-level값은 무시

-bootwait:시스템 부팅 때 그 프로세스가 실행 되고, init은 이 프로세스가 종료되기를 기다 림 그리고 runlevel 값이 무시됨

-initdefault:시스템의 기본 run-level을 지정

-sysinit:시스템 부팅시 프로세서 제일 먼저 실행

-powerwait:전원에 문제가 발생시 프로세서 실행, 프로세서 작업 종료되기를 기다림

-powerfail:전원에 문제가 발생시 프로세서 실행, 작업 종료를 기다리지 않음

-ctrlaltdel: ctrl+alt+del키 입력시 실행

-kbrequest:특정한 키를 입력 받을 때 실행

실행레벨은 0:시스템 정지(halt), 1:싱글 유저모드, 2~5:여러 가지 다중 사용자 모드, 6:시스템 재부팅(reboot)

inittab 파일 분석

--------------------------------------------------------------------

id:2:initdefault:

-> 데비안을 실행레벨 2로 시작하고 /etc/rc.2d 에 있는 스크립트 실행

si::sysinit:/etc/init.d/rcS

-> 어떤 실행레벨이든 부팅 때 1회 실행 기본적인 초기화를 수행한다.

~~:S:wait:/sbin/sulogin

-> 싱글 모드로 들어갈시 root 비밀번호를 물어보게 함

l0:0:wait:/etc/init.d/rc 0

l1:1:wait:/etc/init.d/rc 1

l2:2:wait:/etc/init.d/rc 2

l3:3:wait:/etc/init.d/rc 3

l4:4:wait:/etc/init.d/rc 4

l5:5:wait:/etc/init.d/rc 5

l6:6:wait:/etc/init.d/rc 6

-> 각 레벨별 실행 명령 /etc/init.d/rc 스크립트는 실행레벨이 바뀔 때 매다 알맞은 스크립트를 실행

z6:6:respawn:/sbin/sulogin

->

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

-> 컨트럴+알트+del키 입력 시 시스템 재부팅되게 함

pf::powerwait:/etc/init.d/powerfail start

pn::powerfailnow:/etc/init.d/powerfail now

po::powerokwait:/etc/init.d/powerfail stop

-> 무정전 전원공급 장치상태를 모니터링할 수 있는 bpowerd 패키지를 설치 했을 시 사용

1:2345:respawn:/sbin/getty 38400 tty1

2:23:respawn:/sbin/getty 38400 tty2

3:23:respawn:/sbin/getty 38400 tty3

4:23:respawn:/sbin/getty 38400 tty4

5:23:respawn:/sbin/getty 38400 tty5

6:23:respawn:/sbin/getty 38400 tty6

-> 실행레벨별로 getty 프로그램 실행시키고 tty뭘쓸건지

예) 5:23:respawn:/sbin/getty 38400 tty5 // tty5는 2번 3번 레벨만 가능

--------------------------------------------------------------------

파일은

/etc/inittab: init이 해야할 일을 기록한 파일

/etc/init.d/rc: 각 실행 레벨 실행 스크립트

/etc/init.d/rcS: init에서 처음으로 실행하는 스크립트

디렉토리는

/etc/init.d: 부팅시 쓰이는 모든 스크립트들의 집합소 이 경로에는 원본 스크립트가 있고 스크립트를 쓸려면 각 레벨에 링크를 걸어준다.

/etc/rcS.d: rcS 스크립트에 의해 실행되어질 명령 목록이 담긴 디렉토리

/etc/rc0.d: 0번 실행레벨에서 실행되어질 명령 목록이 담긴 디렉토리

/etc/rc1.d: 1번 실행레벨에서 실행되어질 명령 목록이 담긴 디렉토리

.

.

/etc/rc6.d: 6번 실행 레벨에서 실행되어질 명령 목록이 담긴 디렉토리

디렉토리안에 S로 시작하는 것은 start로 스크립트를 시작하고 K로 시작하는 것은 stop으로 스크립트를 중지한다. 그 뒤 숫자는 스크립트 실행 순서를 의미한다. 그러니 S89cron이 있다면 89번째cron 시작 스크립트라는 뜻이다.

실제로 K로시작하는 파일은 rc0과 rc1,rc6에만 존재하고 나머지 실행 레벨에서는 S파일 만이 존재한다. 그리고 이 디렉토리들에 있는 스크립트를 실행 시켜주는 파일은 /etc/init.d/rc이다.

부팅시 스크립트 실행하는 방법

1. init.d 안에있는 파일을 rcn.d로 링크 걸어준다.

지울때는 링크를 지워준다.

2. update-rc.d <스크립트이름> defaults 써준다.

지울때는 update-rc.d -f <스크립트이름> remove

'OPS > LInux' 카테고리의 다른 글

dhcp  (0) 2015.04.26
fdisk  (0) 2015.04.26
send mail  (0) 2015.04.26
raid  (0) 2015.04.26
quota  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:05

sendmail

-용어

MTA : 사용자로부터 MUA를 통해 전달받은 메시지를 다른 메일서버로 전달 해주는 프로그램(sendmail,exim,qmail)

MUA : 사용자가 메일을 보내기 위하여 사용하는 프로그램(Outlook)

SMTP : 다른 서버로 메일을 보내거나 받을 때 이용하는 프로토콜

POP3 : SMTP에 의해 메일서버에 도착한 메일을 클라이언트가 받을 때 사용하는 프로토콜

MDA : MTA가 수신한 메시지를 사용자의 우편함에 쓰기 위한 프로그램

MRA : 리모트 서버에 있는 우편함으로부터 사용자의 MUA로 메시지를 가져오는 프로그램

a@naver.comb@naver.com에게 보낼때는 로컬임

-----------------------------------

같은 도메인은 MUA-MTA-MDA 순?

다른 도메인은 MUA-MTA-MDA-MTA-MDA-MUA이 순

--------------------------------------------------

sendmail에 사용되는 명령 일부

C:클래스 설정

F:클래스를 적은파일을 설정

D

O:옵션지정

S:룰셋(규칙) 정의

vim /etc/main/sendmail.cf

--------------------------------------------------------------------

Cwlocalhost// Cw뒤에 사용할 도메인을 적음(여러개도 가능)

Fw/etc/mail/local-host-names// 파일을 만들어 도메인을 적음

O ForwardPath=$z/.forward.$w:$z/.forward

-> 사용자(A) 디렉토리에 .forward파일을 만들고 그 파일에 메일주소(B)를 적어놓으면 사용자(A)에게 오는 메일은 모두 파일에 적어놓은 메일주소(B)로 전달됨

Kaccess hash -T<TMPF> /etc/mail/access

-> 특정한 것만 메일릴레이에서 제외시키거나 허용 할 수 있는 파일을 명시

O AliasFile=/etc/mail/aliases// 메일 alias를 지정해놓은 파일 설정

O SevenBitInput=False// 7비트 설정여부, 8비트를 쓸 경우 False로 설정

O EightBitMode=pass8// 7bit를 False로 설정 후 pass8로 설정시 8비트로 작동

O LogLevel=9// 로그레벨 설정, 0-15 level까지 있음

O MaxMessageSize=0// 메일 용량 제한(단위Byte), 주석 시 용량 제한 없음

O QueueDirectory=/var/spool/mqueue// 큐(임시저장)의 경로

O SmtpGreetingMessage=$j Sendmail...// SMTP 접속 시 뜰 문구

O DaemonPortOptions=Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1

-> Relay기능을 수행하는 서버가 로컬만 가능한지 모두 가능한지를 설정하는 부분

Addr=127.0.0.1이 있으면 외부에서 접근이 안 되므로 삭제해줌, 주석시 /etc/access를 참고

O ConnectionRateThrottle=15// 엑세스 가능한 횟수

O ConnectionRateWindowSize=10m// clientIP가 10m동안 위 횟수만큼만 접속 가능

(ConnectionRate* 옵션은 access파일에 쓰이는 옵션)

--------------------------------------------------------------------

# vim /etc/mail/local-host-names

-> local-host-names 파일은 sendmail.cf 파일에 Cw지시문처럼 메일서버에 이용할 도메인을 지정해주는 파일임.

--------------------------------------------------------------------

localhost

localhost

--------------------------------------------------------------------

# vim /etc/mail/aliases

--------------------------------------------------------------------

mailer-daemon: postmaster

news: root// news에게 메일을 보내면 메일은 root에게 감

webmaster: root

noc: root

ja: root, power// ja에게 메일을 보내면 root와 power에게 감

--------------------------------------------------------------------

# newaliases// 새로고침같은 역할

# vim /etc/mail/access

--------------------------------------------------------------------

...

Connect:localhsotRELAY// 릴레이 옵션 설정

GreetPause:localhost0

ClientConn:localhost0// 동시에 세션이 맺어질 수 있는 수 설정

ClientRate:localhost0// 분당 접속 가능한 횟수 설정(시간은 sendmail.cf에서 O ConnectionRateWindowSize=10m 지시로 설정)

...

--------------------------------------------------------------------

# makemap hash /etc/mail/access < /etc/mail/access

-> 일반파일로는 sendmail에서 해석이 불가능 하므로 access파일을 DB형태로 바꿔줌

Connect:localhsot에 쓰이는 옵션 목록

OK : 다른 룰이 거부하는 경우에도 메일의 모든것을 허용함.

RELAY : 지정된 호스트의 메일 중계를 허용함, 지정된 메일의 수신/발신을 허용

REJECT : 지정된 호스트의 메일 수신/발신을 거부함, 발신자에게 거부 통보를 함

DISCARD : 메일을 수신 후 폐기해버림, 발신자에게 폐기통보를 하지 않음

501 <error> : 지정된 메일 주소나 도메인에 대해 발신자의 주소가 전체 또는 부분적 으 로 일치할 경우 메일 거부 <error>에는 포함할 메시지 적음

502 <error> : 발신메일주소에 host가 없을 경우 메일을 받지 않음

550 <error> : 특정 도메인에 관련된 메일을 거부 <error>부분에는 포함할 메시지 적음

571 <error> : 특정 도메인 또는 메일 주소에 대해 경고 메시지를 보내고 메일을 거부 <error>에는 포함할 메시지 적음

-실습

# apt-get install sendmail

# apt-get install dovecot-common

# apt-get install dovecot-pop3d

# vim /etc/mail/sendmail.mc

--------------------------------------------------------------------

...

DAEMON_OPTIONS('............ Addr=127.0.0.1')// Addr=127.0.0.1을 지워줌

DAEMON_OPTIONS('............ Addr=127.0.0.1')// 한행 더 지워줌

--------------------------------------------------------------------

# m4 /etc/mail/sendmail.mc

# vim /etc/sendmail/access

--------------------------------------------------------------------

...

Connect:192.168.0RELAY// 192.168.0으로 시작 하는 모든 IP를 허용

--------------------------------------------------------------------

# makemap hash /etc/mail/access < /etc/mail/access

# vim /etc/mail/local-host-names

--------------------------------------------------------------------

skill.com// 사용하고자 하는 메일의 도메인을 적어줌

--------------------------------------------------------------------

# vim /etc/dovecot/dovecot.conf

--------------------------------------------------------------------

protocols = pop3

listen = *

disable_plaintext_auth = no

mail_location = mbox:~/mail:INBOX=/var/mail/%u

--------------------------------------------------------------------

# /etc/init.d/sendmail restart

# /etc/init.d/dovecot restart

'OPS > LInux' 카테고리의 다른 글

fdisk  (0) 2015.04.26
init  (0) 2015.04.26
raid  (0) 2015.04.26
quota  (0) 2015.04.26
LVM  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:03

RAID


레이드는 하드웨어 레이드와 소프트웨어 레이드 2가지로 나뉘는데 하드웨어 레이드는 OS이전에 처리되고 소프트웨어 레이드는 OS단계에서 처리 된다. 소프트웨어 레이드가 하드웨어 레이드보다 안정성과 성능이 떨어지지만 구축비용이 적게 든다.

레이드는 복수개의 하드를 이용해서 데이터를 저장하는 방식이다. 데이터를 백업하거나 용량증가, 속도증가를 위해 많이 쓰이며 여러 종류의 레이드방식이 있다.

레이드는 크게 3개를 쓰는데 RAID-0, RAID-1, RAID-5이다.

레이드0(스트라이핑)은 2개 이상의 하드로 구성되는데 자료를 분산해서 저장하기 때문에 속도가 빠르다. 예를 들면 데이터1,2,3,4가 있으면 데이터 1,3은 하드0번에 데이터 2,4는 하드1번에 저장시키고, 자료를 가져 올 때 동시에 데이터를 두 하드에서 가저오기 때문에 좀 더 빠르게 데이터 통신 속도를 이용 할 수 있다. 데이터 속도는 빠르지만 둘 중 아무 하드가 망가지면 데이터 복구 불능이다.

용량은 1G+1G=2G 형식이다.

레이드1(미러링)은 2개 이상의 하드로 구성되는데 하드0번은 주 장치로 쓰고 하드1번은 하드0번의 백업 장치로 쓰인다. 하드0번이 저장된 데이터를 하드1번이 모두 백업 받는다. 이로 인해 하드하나가 망가저도 백업 데이터가 있기 때문에 데이터 손실을 예방 할 수 있다.

용량은 1G+1G=1G 형식이다.

레이드5(스트라이핑 패리티)는 3개 이상의 하드로 구성되는데 레이드0의 속도를 살리며 페리티비트(데이터 에러 수정)를 추가해 레이드0의 데이터 손실의 약점을 보안한 것이다.

하드0 하드1 하드2가 있으면 하드0에는 하드1과 하드2의 패리티 정보를 넣고 하드1에는 하드0과 하드1의 패리티정보를 넣고 하드3에는 하드0과 하드2의 패리티 정보를 넣어 데이터를 복구하는 방식이다.

용량은 1G+1G+1G=2G형식이다.

레이드 구성 명령어 형식은

mdadm --create <만들 레이드 장치명> --level=<레이드레벨> --raid-devices=<레이드할 때 쓸 장치 개수> <레이드시 쓸 장치명>

or

mdadm -C <만들 레이드 장치명 -l <레이드레벨> -n <레이드 할 때 쓸 장치 개수> <레이드시 쓸 장치명>

--------------------------------------------------------------------

레이드 0구성

먼저 파티션2개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sdb1, sdc1을 이용하고(다른것을해도 무방) 용량은 512M두개를 이용해 1G용량인 레이드0을 구성한다.

# fdisk /dev/sdb

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1):1

Last cylinder of +size or +sizeM or +sizeK (1-30401, default 30401): +512M

Command (m for help): t

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +512M

Command (m for help): t

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb1 /dev/sdc1

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

Continue creating array? y// 위 정보로 레이드를 하려면 y

# mdadm --detail --scan// 레이드 잘구성되었는지 확인

ARRAY /dev/md0 level=raid0 num-devices=2...// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md0// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid0// 마운트해줄 폴더 생성

# mount /dev/md0 /raid0// 사용을 위해 마운트

# mount | grep md0// 확인

/dev/md0 on /raid0 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md0// 용량 확인

/dev/md0 1.1G 19M 950M 2% /raid0// 생각대로 되었는지 확인

--------------------------------------------------------------------

레이드 1구성

먼저 파티션2개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sdb2, sdc2를 이용하고(다른것 을 해도 무방) 용량은 512M두개를 이용해 512M용량인 레이드1을 구성한다.

# fdisk /dev/sdb

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 2

First cylinder (64-30401, default 64): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (64-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 2// 파티션형식은 2번을 변경해줄것 이므로 2를 누름

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 2

First cylinder (64-30401, default 64):// 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (64-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 2// sdc2의 파티션 형식을 변경할 것 이므로 2를 누름

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sdb2 /dev/sdc2

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

continue Creating array? y// 위 정보로 레이드를 하려면 y

# mdadm -D --scan | grep md2// 레이드 잘구성되었는지 확인

ARRAY /dev/md2 level=raid1 num-devices=2...// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md2// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid1// 마운트해줄 폴더 생성

# mount /dev/md2 /raid1// 사용을 위해 마운트

# mount | grep md2// 확인

/dev/md2 on /raid1 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md2// 용량 확인

/dev/md2 502M 11M 466M 3% /raid1// 생각대로 되었는지 확인

--------------------------------------------------------------------

레이드 5구성

먼저 파티션3개를 생성해 레이드파티션방식으로 바꿔줘야 한다.

파티션을 sda3, sdb3, sdc3을 이용하고(다른것 을 해도 무방) 용량은 512M세개를 이용해 1G용량인 레이드5을 구성한다.

# fdisk /dev/sda

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 3

First cylinder (6323-30401, default 6323): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (6323-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdb

Command m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4)3

First cylinder (127-30401, defaul 127):// 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (127-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# fdisk /dev/sdc

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 3

First cylinder (127-30401, default 127): // 그냥 엔터

Last cylinder or +size or +sizeM or +sizeK (127-30401, default 30401): +512M

Command (m for help): t

Partition number (1-4): 3

Hex code (type L to list codes): fd

Command (m for help): w

# reboot// 재부팅 해줘야 새로 만든 파티션이 올라감

# mdadm -C /dev/md1 -l 5 -n 3 /dev/sda3 /dev/sdb3 /dev/sdc3

.// 생략부분은 레이드 하는 파티션의 정보를 보여줌

.

Continue creating array? y // 위 정보로 레이드 구성하려면 y

# mdadm -D --scan | grep md1

ARRAY /dev/md1 level=raid5 num-devices=3// 생각대로 생성되었는지 확인

# mkfs.ext3 /dev/md1// 사용하기 위해 ext3형식으로 포맷

# mkdir /raid5// 마운트해줄 폴더 생성

# mount /dev/md1 /raid5// 사용을 위해 마운트

# mount | grep md1// 확인

/dev/md1 on /raid5 type ext3 (rw)// 생각대로 되었는지 확인

# df -H | grep md1// 용량 확인

/dev/md1 1.1G 19M 950M 2% /raid5// 생각대로 되었는지 확인

--------------------------------------------------------------------

같은 명령어

mdadm --detail = mdadm -D

mdadm --create = mdadm -C

mdadm --level = mdadm -l

mdadm --raid-devices = mdadm -n

레이드를 정지하고 싶을때

mdadm -S <장치명>

# mdadm -S /dev/md0// md0 정지

'OPS > LInux' 카테고리의 다른 글

init  (0) 2015.04.26
send mail  (0) 2015.04.26
quota  (0) 2015.04.26
LVM  (0) 2015.04.26
NIS  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:02

quota


사용자 쿼터

# vim /etc/fstab// 쿼터 할 파일 시스템을 fstab(자동마운트)에 등록

--------------------------------------------------------------------

/dev/sdb5/kimext3defaults,usrquota0 2

.

.

.

--------------------------------------------------------------------

사용자 쿼터는 usrquota 옵션을 추가

# mount -o remount /kim// usrquota 적용되게 리마운트 해줌

# mount | grep kim// mount 명령어로 재대로 되 엇나 확인

/dev/sdb5 on /kim type ext3 (rw,usrquota)// usrquota있으면 성공

# touch /kim/aquota.user// 쿼터 정보파일인 aquota.user을 생성

# chmod 600 /kim/aquota.user// 보안을 위해 퍼미션 600으로 변경

# quotacheck -am// 쿼터를 체크해서 aquota.user에 파일저장

# quotaon /kim// kim 디렉토리의 쿼터를 시작

# edquota -u kim// kim 유저의 쿼터설정 -u는 사용자를 뜻하는 옵션

--------------------------------------------------------------------Disk quotas for user kim (uid 500):// uid500의 kim이라는 사용자 쿼터

Filesystemblockssofthardinodessofthard

/dev/sdb5 0 0 0 0 0 0

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

쿼터 설정은 blocks와 inodes로 나누어 지고 soft와 hard는 각 blocks와 inodes의 옵션

blocks는 용량을 뜻하고 사용하고 있는 용량을 나타내줌 blocks의 soft는 사용자가 사용할 수 있는 용량을 설정 할 수 있고 유예기간동안은 blocks의 hard까지는 더 사용할 수 있음 blocks의 hard는 사용자가 사용할 수 있는 절대적인 용량을 설정

inodes는 파일의 개수를 뜻 뜻하고 사용 중인 파일의 개수를 나타내줌 inodes의 soft는 사용자가 사용할 수 있는 파일의 개수를 설정 할 수 있고 유예기간 동안은 hard의 값 내에서는 더 사용할 수 있음 inodes의 hard는 사용가능한 절대적인 파일 개수를 설정

쿼터의 용량단위는 KB(킬로바이트)

# edquota -t// 쿼터 유예기간 설정하기

--------------------------------------------------------------------

Gracd period before enforcing soft limits for users:

Time units may be: days, hours, minutes, or seconds

FilesystemBlock grace periodInode grace period

/kim7days7days

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

Block grace period는 Block(용량)의 유예기간 설정 Inode grace period는 Inode(파일수)의 유예기간 설정 soft값을 더 쓴 상태에서 유예기간이 지나면 계정은 사용중지

옵션:sec(초), min(분), hour(시), day(일), month(달)

#repquota -a// 쿼터 상태 확인

---------------------------------------------

*** Report for user quotas on device /dev/hda5

Block grace time: 7days; Inode grace time: 7days

Block limitsFile limits

Userused soft hard grace used soft hard grace

--------------------------------------------------------------------

root -- 341120 0 40 0

kim -- 240 0 60 0

---------------------------------------------

첫 번째 줄 /dev/hda5는 쿼터 한 파티션을 뜻 하고 두 번째 줄 7days는 유예기간을 뜻 함

그리고 네 번째 줄은 used는 사용 중인 공간/파일 수 soft는 설정해준 soft값 hard는 설정해준 hard값 grace는 남은 유예기간(soft값이 초과되면 그 때 부터 표시)

# quota -u kim// 특정 사용자의 쿼터를 보고 싶을 때

※ repquota -a 나 quota kim을 했는데 kim의 쿼터상태가 안보일 때는 kim이 용량을 안 써서 그렇다 쿼터 된 디렉토리에 kim으로 파일을 쓰고 repquota등을 처 보면 나온다.

그룹 쿼터

# vim /etc/fstab// 쿼터 할 파일 시스템을 fstab(자동마운트)에 등록

--------------------------------------------------------------------

/dev/sdc5/grext3defaults,grpquota0 2

--------------------------------------------------------------------

그룹 쿼터는 grpquota 옵션을 추가

# mount -o remount /gr// grpquota 적용되게 리마운트 해줌

# mount | grep gr// mount 명령어로 재대로 되 엇나 확인

/dev/sdbc on /gr type ext3 (rw,grpquota)// grpquota있으면 성공

# touch /gr/aquota.group// 쿼터 정보파일인 aquota.group을 생성

# chmod 600 /kim/aquota.group// 보안을 위해 퍼미션 600으로 변경

# quotacheck -avug// 쿼터를 체크해서 aquota.group에 파일저장

# quotaon /gr// gr 디렉토리의 쿼터를 시작

# edquota -g king// king 그룹의 쿼터설정 -g는 그룹을 뜻하는 옵션

--------------------------------------------------------------------Disk quotas for group king (uid 1005):// uid1005의 king이라는 그룹 쿼터

Filesystemblockssofthardinodessofthard

/dev/sdb5 0 0 0 0 0 0

설정을 마치면 컨트롤+O로 저장을 하고 컨트롤+X키로 빠저 나온다.

--------------------------------------------------------------------

쿼터의 용량단위는 KB(킬로바이트)

쿼터를 확인하려면

quota -g king// 특정 그룹의 쿼터를 보고 싶을때

Disk quotas for group king (gid 1005):

Filesystemblocksquotalimitgracefiles quota limit grace

/dev/sdc5 8 10241024 2 0 0

※ 쿼터가 적용되는 것은 ls -l 명령을 내렷을 때 그룹 이름으로 따짐 그러니 메인그룹으로 쿼터를 따진다는 뜻 lee란 이용자가 lee가 메인그룹이고 king이 보조그룹이었는데 그냥 파일을 만들시 파일 소유권은 lee:lee로 되는데 이럴시 이 파일은 쿼터에 적용 안 됨

'OPS > LInux' 카테고리의 다른 글

send mail  (0) 2015.04.26
raid  (0) 2015.04.26
LVM  (0) 2015.04.26
NIS  (0) 2015.04.26
NFS  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 01:01

LVM


용어

PV : 물리적 파티션을 뜻함 LVM을 할려 면 장치(/dev/sda)를 PV로 바꿔 줘야함 예를 들면 /dev/sda1을 pv형태로 바꾸면 /dev/sda1이 PV임

VG : PV를 묶은 것 그러니 LVM은 파티션 여러 개를 붙여 쓰는것 이니 PV를 여러 개 묶어 VG로 구성해서 사용

LV : VG의 파티션 그러니 VG가 sda라면 LV는 sda1임

그러니 정리하면 PV가 모여 VG를 이루고 VG는 LV란 파티션을 가짐

명령어 형식

pvcreate <장치명>// 장치를 PV로 만듬

vgcreate <VG그룹이름> <PV> <PV>// PV와 PV를 이용해 VG를 생성

lvcreate -L <g단위용량> <VG그룹이름> -n <만들 LV이름>

-> 용량을 정해 VG의 파티션인 LV를 생성

실습 : sdb1 5G와 sdc1 5G를 통해 debi_vg 라는 VG 10G를 구성 하고, 2gdivi_lv라는 2g LV를 구성한다.

# fdisk /dev/sdb// sdb1을 lvm 형태로 생성 과정

Command (m for help): n

Command action

eextended

pprimary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-30401, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +5120M

Command (m for help): t

Hex code (type L to list codes): 8e

Command (m for help): w

# fdisk /dev/sdc// sdc1을 lvm 형태로 생성 과정

Command (m for help): n

Command action

eextended

pprimary partiton (1-4)

p

Partiton number (1-4): 1

First cylinder (1-30401, default 1): 1

Last cylinder or +size or +sizeM or +sizeK (1-30401, default 30401): +5120M

Command (m for help): t

Hex code (type L to list codes): 8e

Command (m for help): w

# pvcreate /dev/sdb1// /dev/sdb1을 PV로 만들어줌

Physical volume "/dev/sdb1: successfully created// 이렇게 뜬다면 성공

# pvcreate /dev/sdc1// /dev/sdc1을 PV로 만들어줌

Physical volume "/dev/sdb1: successfully created

※ PV를 삭제시 pvremove 장치명(/dev/sdb1)을 입력하고 PV를 볼려면 pvdisplay를 입력

# vgcreate debi_vg /dev/sdb1 /dev/sdc1

-> /dev/sdb1과 /dev/sdc1이란 PV를 이용해 debi_vg라는 VG를 형성

Volume group "debi_vg" successfully created// 이렇게 뜬다면 성공

※ VG를 삭제시 vgremove VG이름(debi_vg)을 입력하고 VG를 볼려면 vgdisplay를 입력

# lvcreate -L 2g debi_vg -n 2gdebi_lv// debi_vg에서 2G를 할당해 2gdevi_lv를 생성

Logical volume "2gdebi_lv" created

※ LV를 삭제시 lvremove LV경로(/dev/debi_vg/2gdebi_lv)를 입력하고 LV를 볼려면 lvdisplay를 입력

이제 나눈 LVM을 쓰기위해 포맷하고 마운트 한다면

# mkfs -t ext3 /dev/debi_vg/2gdebi_lv

# mount /dev/debi_vg/2gdebi_lv /mnt

옵션

VG를 만들 때 -s 옵션을 쓰면 PE크기를 정할 수 있음 기본 값은 4M

VG를 확장 시킬 때 # vgreduce <VG그룹> <더할 PV>

ex) # vgreduce debi_vg /dev/sdc2

VG를 축소 시킬 때 # vgreduce <VG그룹> <뺄 PV>

ex) # vgreduce debi_vg /dev/sdc2

LV이름을 바꿀 때 # lvrename <기존이름> <바꿀이름>

ex) # lvrename /dev/debi_vg/2gdebi_lv /dev/debi_vg/reallv

LV를 확상 시킬 때 # lvextend -L <추가용량> <LV이름>

ex) # lvextend -L +2g /dev/debi_vg/2gdebi_lv

LV를 축소 시킬 때 # lvreduce -L <뺄 용량> <LV이름>

ex) # lvreduce -L -1g /dev/debi_vg/2gdebi_lv

파일 이용해 복구

# vgchange -a n debi_vg # vgcfgrestore -f /etc/lvm/backup/debi_vg.conf.1.old -n debi_vg # vgchange -a y debi_vg 

'OPS > LInux' 카테고리의 다른 글

raid  (0) 2015.04.26
quota  (0) 2015.04.26
NIS  (0) 2015.04.26
NFS  (0) 2015.04.26
openVPN  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 00:59

NIS(YP)


- NIS란

NIS는 Network Information Service의 약자이며 YP(Yellow Page)라고도 불린다. RPC(Remote Procedure Call)환경에서 같은 NIS도메인에 속해 있는 호스트들끼리 네트워크자원(호스트명, 사용자계정, 패스워드, 그룹등)을 공유하여 서로 같은 시스템 환경을 제공하는 것이 목적이다.

NIS Master서버는 NIS데이터베이스의 마스터맵을 가지고 있고 이를 업데이트하고 유지하고, 이 정보를 NIS Slave Server에게 제공한다. 또 NIS Client에게 NIS서비스를 제공한다.

NIS Slave서버는 NIS Master서버로부터 NIS데이터베이스를 제공받아 같은 복사본을 보관하고 있는 서버로서 NIS Client에게 서비스를 제공한다.

NIS Client는 Master서버와 Slave서버에게 NIS정보를 제공 받는다. 이때 제공받는 Master나 Slave서버를 가리지 않으며 가장 빠른 응답이 있는 서버의 정보를 이용한다.

- NIS master와 NIS client 구성

· NIS Master Server설정

#vim/etc/hostname

--------------------------------------------------------------------

master.skill.com

--------------------------------------------------------------------

# vim /etc/defaultdomain// NIS에쓸 도메인을 적음

--------------------------------------------------------------------

skill.com

--------------------------------------------------------------------

※ defaultdomain파일은 컴퓨터 시작시 nis도메인을 설정해주는 파일이다. 지금 당장 바꾸고 싶다면 nisdomainname명령어를 이용

# vim /etc/hosts// 보통 NIS는 dns를 안 쓰므로 hosts파일 편집

--------------------------------------------------------------------

172.16.0.1master.skill.com master

172.16.0.2client.skill.comclient

--------------------------------------------------------------------

※ IPFQDNhost 형식으로 적어줌

# vim /etc/default/nis

--------------------------------------------------------------------

...

NISSERVER=master// false로 되있는것을 master로 변경해줌

...

--------------------------------------------------------------------

# /usr/lib/yp/ypinit -m// NIS master서버로 설정

next host to add: master.skill.com// 컨트롤+D를 눌러 빠저나옴

Is this correct? [y/n]y// y를 누름

# make -C /var/yp// 새로고침

# /etc/init.d/nis restart// nis 재시작

· NIS Client 설정

# vim /etc/hostname

--------------------------------------------------------------------

client.skill.com

--------------------------------------------------------------------

# vim /etc/hosts

--------------------------------------------------------------------

172.16.0.1master.skill.com master

172.16.0.2client.skill.com client

--------------------------------------------------------------------

# vim /etc/defaultdomain

--------------------------------------------------------------------

skill.com

--------------------------------------------------------------------

# vim /etc/passwd

--------------------------------------------------------------------

...생략

+::::::// 제일 밑에 이 부분 추가

--------------------------------------------------------------------

# vim /etc/group

--------------------------------------------------------------------

...생략

+:::// 제일 밑에 이 부분 추가

--------------------------------------------------------------------

# vim /etc/shadow

--------------------------------------------------------------------

...생략

+::::::::// 제일 밑에 이 부분 추가

--------------------------------------------------------------------

# /etc/init.d/nis restart

# ypcat passwd// 명령 입력 시 마스터서버에 있는 유저가 보여야함(일반유저만)

# exit

client.skill.com login: // 서버에서 추가해준 유저로 로그인해서 로그인 되면 성공

- NIS master와 NIS slave, NIS client 구성

· NIS Master 설정

#vim/etc/hostname

--------------------------------------------------------------------

master.skill.com

--------------------------------------------------------------------

# vim /etc/defaultdomain// NIS에쓸 도메인을 적음

--------------------------------------------------------------------

skill.com

--------------------------------------------------------------------

※ defaultdomain파일은 컴퓨터 시작시 nis도메인을 설정해주는 파일이다. 지금 당장 바꾸고 싶다면 nisdomainname명령어를 이용

# vim /etc/hosts// 보통 NIS는 dns를 안 쓰므로 hosts파일 편집

--------------------------------------------------------------------

172.16.0.1master.skill.com master

172.16.0.2slave.skill.comslave

172.16.0.3client.skill.comclient

--------------------------------------------------------------------

※ IPFQDNhost 형식으로 적어줌

# vim /etc/default/nis

--------------------------------------------------------------------

...

NISSERVER=master// false로 되있는것을 master로 변경해줌

...

--------------------------------------------------------------------

# /usr/lib/yp/ypinit -m// NIS master서버로 설정

next host to add: master.skill.com// 컨트롤+D를 눌러 빠저나옴

Is this correct? [y/n]y// y를 누름

# /etc/init.d/nis restart// nis 재시작

# make -C /var/yp// 새로고침

· NIS Slave 서버 설정

# vim /etc/hostname

--------------------------------------------------------------------

slave.skill.com

--------------------------------------------------------------------

# vim /etc/defaultdomain// NIS에쓸 도메인을 적음

--------------------------------------------------------------------

skill.com

--------------------------------------------------------------------

※ defaultdomain파일은 컴퓨터 시작시 nis도메인을 설정해주는 파일이다. 지금 당장 바꾸고 싶다면 nisdomainname명령어를 이용

# vim /etc/hosts// 보통 NIS는 dns를 안 쓰므로 hosts파일 편집

--------------------------------------------------------------------

172.16.0.1master.skill.com master

172.16.0.2slave.skill.comslave

172.16.0.3client.skill.comclient

--------------------------------------------------------------------

※ IPFQDNhost 형식으로 적어줌

# vim /etc/default/nis

--------------------------------------------------------------------

...

NISSERVER=slave// false로 되있는것을 slave로 변경해줌

...

--------------------------------------------------------------------

# /usr/lib/yp/ypinit -s master.skill.com// 이 서버를 slave 설정하고 master.skill.com

에서 데이터를 받아옴

# /etc/init.d/nis restart

※ slave 서버 선택사항

passwd파일과 shadow파일, group파일 맨 마지막줄에 +::::(+클론) 이것을 붙여주면 slave서버 에서도 로그인을 할 수 있고 붙여주지 않는 다면 로그인을 할 수 없음 다만 client에게 정보를 제공하는 것은 마스터 서버와 같음. 그러니 쉽게 말하자만 slave서버로 작동 시킨 이상 client에게 정보를 제공하는것은 master서버와 똑같이 작동하고 있고, slave서버에서도 로그인을 가능하게 하려면 client처럼 passwd파일 group파일등에 맨마지막줄에 +:::(+ 클론)을 붙여 주어야함

· NIS Client 설정

# vim /etc/hostname

--------------------------------------------------------------------

client.skill.com

--------------------------------------------------------------------

# vim /etc/hosts

--------------------------------------------------------------------

172.16.0.1master.skill.com master

172.16.0.2slave.skill.comslave

172.16.0.3client.skill.com client

--------------------------------------------------------------------

# vim /etc/defaultdomain

--------------------------------------------------------------------

skill.com

--------------------------------------------------------------------

# vim /etc/passwd

--------------------------------------------------------------------

...생략

+::::::// 제일 밑에 이 부분 추가

--------------------------------------------------------------------

# vim /etc/group

--------------------------------------------------------------------

...생략

+:::// 제일 밑에 이 부분 추가

--------------------------------------------------------------------

# vim /etc/shadow

--------------------------------------------------------------------

...생략

+::::::::// 제일 밑에 이 부분 추가

--------------------------------------------------------------------

# /etc/init.d/nis restart

# ypcat passwd// 명령 입력 시 마스터서버에 있는 유저가 보여야함(일반유저만)

# exit

client.skill.com login: // 서버에서 추가해준 유저로 로그인해서 로그인 되면 성공

만약 NIS를 hosts파일이 아닌 DNS를 이용하여 하고 싶다면 그냥 hosts파일에 적어 둔 것을 지우고 네임서버 구축 뒤 resolv.conf파일에 네임서버 명시해주고 zone파일에 host를 hosts파일에서 매핑 해준 것처럼 존파일에도 해준 뒤 그냥 NIS재시작 하면 됨

- 기타 명령어

ypcat: ypcat <맵파일> 하면 정보를 확인 할 수 있다.(ex. # ypcat passwd)

ypmatch: ypmatch <검색대상> <맵파일>하면 맵파일 정보에서 <검색대상>만 검색한다.

(ex # ypmatch kim passwd = passwd 파일에서 kim을 검색)

ypwhich: NIS의 서버이름을 출력한다.

ypwhich -m: NIS 와 관련된 맵파일들을 보여준다.

'OPS > LInux' 카테고리의 다른 글

quota  (0) 2015.04.26
LVM  (0) 2015.04.26
NFS  (0) 2015.04.26
openVPN  (0) 2015.04.26
squid  (0) 2015.04.26
Posted by 배주혁
2015. 4. 26. 00:58

NFS

NFS는 Network File System이라고 하여 파일시스템을 network을 통하여 서로 다른 컴퓨터끼리 공유 할수 있도록 해주는 서비스 이다.

- 서버에서 설정

# vim /etc/exports// 서버에서 공유설정하는 파일을 염

--------------------------------------------------------------------

<서버의 공유해줄 파일경로><클라이언트IP>(옵션들)

--------------------------------------------------------------------

# /etc/init.d/nfs-kernel-server restart// 서비스 재시작

- 클라이언트에서 설정

# mount <서버IP(혹은도메인)>:<서버가 공유하는 파일경로> <자신서버의 파일경로>

- 클라이언트에 부팅 시 nfs연결하려면

# vim /etc/fstab

--------------------------------------------------------------------

<서버아이피>:<서버가 공유하는 파일경로><자신서버의 파일경로> nfs defaults 0 0

--------------------------------------------------------------------

ex)

192.168.0.1의 /test와 192.168.0.2의 /share을 공유하려할 때

- 192.168.0.1이 서버인 경우

# vim /etc/exports

--------------------------------------------------------------------

/test192.168.0.2(rw,sync)

--------------------------------------------------------------------

# /etc/init.d/nfs-kernel-server restart

- 192.168.0.2의 클라이언트의 설정

# mount 192.168.0.1:/test /share

- 클라이언트에 부팅시 자동연결되게 하기

# vim /etc/fstab

--------------------------------------------------------------------

192.168.0.1:/test/sharenfsdefaults0 0

--------------------------------------------------------------------

- /etc/fstab에서 옵션 값들

- no_root_squash:서버와 클라이언트 모두가 root권한을 가짐

- rw:읽기 쓰기 가능, - sync:실시간 동기화, - ro:읽기만 가능

- no_subtree_check:하위트리검사안하기(속도향상)

'OPS > LInux' 카테고리의 다른 글

LVM  (0) 2015.04.26
NIS  (0) 2015.04.26
openVPN  (0) 2015.04.26
squid  (0) 2015.04.26
Iptables  (0) 2015.04.21
Posted by 배주혁
이전버튼 1 2 3 이전버튼