서버의 고가용성을 목적으로 Data Replication 관련 DRDB 패키지 설치

DRBD와 heartbeat 혹은 keepalived 이용해 active-standby를 구성


OS : ubuntu 14.04 (64bit)

NIC : 

- node01 : public(eth0, 192.168.100.101), heartbeat(eth2, 172.27.0.101 mtu 9000) 

- node02 : public(eth0, 192.168.100.102), heartbeat(eth2, 172.27.0.102 mtu 9000) 

DISK : sdb1(Replication DISK 10G), sdc1(META DISK 1GB)



1. 사전 준비


1) ntp 설치(nodeo01, node02) 

# apt-get install ntp -y

# /etc/init.d/ntp start

# ntpq -p

# date


2) iptables 해제

# iptables -F


3) /etc/hosts file 설정

master/slave 서버 호스트명 기재


# cat /etc/hosts

127.0.0.1       localhost

# 127.0.1.1       node01


192.168.100.101 node01  node01

192.168.100.102 node02  node02

172.27.0.101    node01-private

172.27.0.102    node02-private


4) DISK 파티셔닝

# fdisk /dev/sdb, /dev/sdc



2, DRDB 패키지 설치


# apt-get install drbd8-utils


# root@node02:/etc# cat drbd.conf

# You can find an example in  /usr/share/doc/drbd.../drbd.conf.example


include "drbd.d/global_common.conf";

include "drbd.d/*.res";


# /etc/drbd.conf


# cat /etc/drbd.d/nfs.res

 

resource nfs {    # nfs라는 리소스 정의

  protocol C;                 # DATA 전송 프로토콜 A 비동기식 빠른속도   <=> C 동기식

        startup {

                wfc-timeout 30;

                outdated-wfc-timeout 20;

                degr-wfc-timeout 30;

      #become-primary-on both; # Active-Active 설정시​

        }

disk {

                on-io-error detach;   //  This is the recommended option. On the occurrence of a lower-level I/O error, the node drops its backing device, and continues in diskless mode.             

fencing resource-only; //If a node becomes a disconnected primary, it tries to fence the peer's disk. 

        }

        net {

                cram-hmac-alg sha1;

                shared-secret sync_disk;

                #allow-two-primaries yes;         # Active-Active 구성시 옵션으로 아래 4줄

                #after-sb-0pri discard-zero-changes; 

                #after-sb-1pri discard-secondary; 

                #after-sb-2pri disconnect; 

        }

        syncer {    # resynchroniztion 에서 사용하는 대역폭

                rate 100M;                  # 초당 100M

                verify-alg sha1;

al-extents 257;

        }

        on node01 {                          # 호스트 별로 리소스 정의 (uname -n 값과 반드시 일치)

                device /dev/drbd0;           # drbd의 논리 블록 디바이스명. mkfs,mount 수행해야됨

                disk /dev/sdb1;              # 미러링 하고자 하는 물리 디스크 디바이스명

                address 172.27.0.101:7788;   # 데이타 동기화를 위한 수신 IP/포트

                meta-disk /dev/sdc1;         # 자체 메타 공간 사용 meta-disk internal;

        }

        on node02 {

                device /dev/drbd0;

                disk /dev/sdb1;

                address 172.27.0.102:7788;

                meta-disk /dev/sdc1;

        }



3. 실행

메타데이터 생성 - master/slave 모두

# drbdadm create-md nfs #meta

# dd if=/dev/zero of=/dev/sdb bs=1M  <=오류 시 dd로 disk 초기화

# /etc/init.d/drbd start​ #drbd 서비스 시작, wfc-timeout 시간 이내에 두서버를 모두 on 



# drbdadm -- --overwrite-data-of-peer primary nfs #active 서버 지정 한쪽에서만 수행

# drbdadm primary --force nfs #active 서버 지정

# drbd-overview #확인


# mkfs.ext4 /dev/drbd0 #primary 에서 지정

# mkdir /data

# mount /dev/drbd0 /data/


4. drbdadm CLI

# drbdadm primary nfs

# drbdadm secondary nfs

# drbd-overview

drbdadm -- --overwrite-data-of-peer primary all

primary로 부터 데이터 동기화




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

DNS 서버 bind9 설정 관련  (0) 2015.10.11
[Linux] iptables 사용  (0) 2015.10.11
[리눅스] 유용한 find , grep 사용법  (1) 2015.10.11
[Linux] iscsi.conf timeout 관련  (0) 2015.06.10
[리눅스] 파일 무결성 검증  (1) 2014.11.18
Posted by 뭉탁거림
,

# bind9 설치


아래 config file 수정

# cat named.conf.options <-------- forward 옵션 설정 , dns 서버에 없는 경우

forwarders {

8.8.8.8;

};


# cat named.conf.local <-------- zone 생성(domain 등록)

zone "wlstn.com" {

type master;

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

};


# cat db.wlstn.com

root@ubuntu:/etc/bind# cat db.wlstn.com 

;

; BIND data file for local loopback interface

;

$TTL 604800

@ IN SOA ns.wlstn.com. root.wlstn.com. (

     2 ; Serial

604800 ; Refresh

 86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

@ IN NS ns.wlstn.com.

@ IN A 192.168.218.129

www IN A 192.168.218.130

mail IN A 192.168.218.131

* IN A 192.168.218.129

Posted by 뭉탁거림
,

iptables 간단하게 정리하고 자주쓰이는 기능에 대해서 정리하고자 한다

크게 2가지 filter, nat table이 존재함

각 table에는 아래와 같은 Chain 룰셋이 있다

1) input

2) forward - filter table에만 존재

3) output 

4) nat(PREROUTING, POSTROUTING) - nat table에만 존재


옵션은 2가지만 알자 

-A (Add) - rule 추가

-D (Del) - rule 삭제


[사용법]

1) iptables 읽기

# iptables -L : 리눅스 iptable은 기본으로 filter table을 읽음

# iptables -t nat -L : nat table 읽음 

2) iptables 삭제

# iptables -F


[예제]

1) Linux OS에서 출처 input chain 제어

# iptables -A input -j DROP - 모든 input 패킷 드랍

# iptables -A input -s 192.168.100.100 -j DROP - 출발지가 192.168.100.100인 패킷 드랍

iptables -A input -d 192.168.100.100 -j DROP - 목적지가 192.168.100.100 패킷 드랍

# iptables -A input -p TCP -j ACCEPT - TCP 프로토콜 쓰는 패킷 허용

# iptables -A input -p TCP --dport 80 -j DROP - TCP 80포트로 목적지로 사용하는 패킷 DROP

# iptables -A input -i eth0 -p TCP --dport 80 -j DROP - eth0 TCP 80포트로 목적지를 사용하는 패킷 DROP 

여기서 참고로 인터페이스 옵션은 input chain은 -i 만 output chain은 -o 만 옵션만 사용 가능함 


Masqurade 

iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE 

sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"


사용법 : iptables

테이블(filter, nat, mangle, raw)

체인(INPUT, OUTPUT, FORWARD, PREROUTING, POSTROUTING)

룰설정 : -A : append , -l : insert , -D : 삭제 , -F : 해당 Chain 모든 삭제, -R: replace 치환

           -p : 프로토콜(tcp,udp,icmp), -s 출발지 , -d 목적지 , --sport 출발지 포트, -dport 목적지 포트 -i 입력인터페이스, -o 출력 인터페이스

정책지정 : -j 옵션을 통해서 타겟 체인 설정(ACCEPT, DROP(차단), REJECT(차단하면서 ICMP 응답 전송), LOG)

 

iptables -t nat -A PREROUTING -p tcp -d 10.13.31.91 --dport 80 -j DNAT --to 10.244.0.34:80

iptables -t nat -A PREROUTING -p tcp -d 10.13.31.91 --dport 443 -j DNAT –to 10.244.0.34:443

iptables -t nat -A PREROUTING -p tcp -d $INTERNAL_IP --dport 4443 -j DNAT –to 10.244.0.34:4443

 

iptables -t nat -A PREROUTING -p tcp -d 10.13.31.91 --dport 8022 -j DNAT --to 10.244.0.34:22

 

iptables -t nat -A PREROUTING -i eth1 -p tcp -d 10.13.31.91 --dport 8022 -j DNAT --to 10.244.0.34:22

iptables -A FORWARD -p tcp -i eth1 -d 10.13.31.91 --dport 8022 -j ACCEPT

 

 

iptables -A POSTROUTING -t nat -o eth0 -j MASQUERADE

 

 

sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

Posted by 뭉탁거림
,

리눅스 user라면 반드시 사용하는 find, grep 

매번 해당 명령어의 옵션이 기억이 가물가물 ...


o find 

find 경로 옵션 조건 action

여기서 옵션은  -name , -user, -perm, -type 등이 사용

action 에서는 -exec 사용, 예제에서 보듯 결과값이 {}으로 들어감, "\;" <-- 요건 관례적으로 사용하는 필수 구문

example)

# find ./ -name *.py

# find ./ -name *.py -exec rm -f {} \;

# find ./ -type f


o grep

요약해서 파일내의 패턴 검색 후 일치하는 패턴 출력

grep linux /etc/*

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

DNS 서버 bind9 설정 관련  (0) 2015.10.11
[Linux] iptables 사용  (0) 2015.10.11
[Linux] iscsi.conf timeout 관련  (0) 2015.06.10
[리눅스] 파일 무결성 검증  (1) 2014.11.18
[리눅스] parted  (0) 2014.11.18
Posted by 뭉탁거림
,

ISCSI initiator ISCIS Connection I/O 혹은 특별한 활동이 없을 경우에 ping check 주기적으로

이때 ping check하는 파라미터 값임

# Time interval to wait for on connection before sending a ping.
node.conn[0].timeo.noop_out_interval = 5

 

그리고 나서 미리 정해진 ping timeout 시간의 응답을 대기하다가 어떤 문제로 인해 timeout 값을 초과하게 되면 어플리케이션이나 multipath S/W I/O error connection fail 선언

이때 ping to timeout 값이 timeo.noop_out_timeout 값이다

# To specify the time to wait for a Nop-out response before failing
# the connection, edit this line. Failing the connection will
# cause IO to be failed back to the SCSI layer. If using dm-multipath
# this will cause the IO to be failed to the multipath layer.
node.conn[0].timeo.noop_out_timeout = 5

 

 

Ping timeout으로 인한 connection fail 발생하는 경우(iscsi target 문제나 network issue 문제가 있을 )

아래 파라미터 replacement_timeout 의해서 시스템이 다시 path session 맺기 위해 대기한다.

replacement_timeout은 반드시 noop_out time보다는 높은 수치로 설정이 되어야됨..!

node.session.timeo.replacement_timeout = replacement_timeout

 

#iscsi session online 상태에서 파라미터 적용하는 방법

iscsiadm -m node -T target_name -p target_IP:port -o update -n node.session.timeo.replacement_timeout -v $timeout_value

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

[Linux] iptables 사용  (0) 2015.10.11
[리눅스] 유용한 find , grep 사용법  (1) 2015.10.11
[리눅스] 파일 무결성 검증  (1) 2014.11.18
[리눅스] parted  (0) 2014.11.18
[리눅스] kdump  (0) 2014.11.07
Posted by 뭉탁거림
,

인터넷이나 외부 레포로 부터 이미지나 파일 다운로드시 SHA1SUM 또는 MD5SUM 파일을 본적이 있을 것

이 파일이 무엇이냐,,,


3문자으로 요약하자면

1) 파일을 다운로드 시 원본 파일과 동일한 파일인지 확인하는 목적

2) 체크섬(checksum) 정보가 포함되어 있다.

여기서 checksum이란.... 데이터의 정확성을 검사하기 위한 용도로 사용되는 합계. 오류 검출 방식의 하나임..ㅋㅋ

MD5 (128 비트) 체크섬을 확인

SHA1 (160 비트) 체크섬을 확인


o md5sum :

Usage: md5sum [OPTION]... [FILE]...

Print or check MD5 (128-bit) checksums.


o sha1sum

Usage: md5sum [OPTION]... [FILE]...

Print or check MD5 (128-bit) checksums.


예제는 펌!!!!!!!!!!!!!!

[ 옵션 ]

-b, --binary

바이너리 모드로 읽기

-c, --check

파일에 (md5, sha1) 합계를 읽고 체크.

-t, --text

텍스트 모드로 읽기 (기본값)

체크섬을 검증 하는 경우의 옵션

--quiet

체크섬 검증이 성공한 메시지는 출력 안함

 

 

▶ md5sum, sha1sum 명령어를 사용해 파일의 체크섬을 생성.

$ touch devanix

$ md5sum devanix

d41d8cd98f00b204e9800998ecf8427e devanix

$ sha1sum devanix

da39a3ee5e6b4b0d3255bfef95601890afd80709 devanix

☞ 파일의 유효성을 검증하기 위해 md5sum 또는 sha1sum 정보 중 무엇을 선택할지는 전적으로 배포자의 결정.

 

Xubuntu 11.04 (Natty Narwhal) 배포판 사이트에서 MD5SUMS 파일 검증.

/* Xubuntu 11.04(Natty Narwhal) 다운 */

$ wget http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/xubuntu-11.04-desktop-i386.iso

--2011-08-07 18:57:05-- http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/xubuntu-11.04-desktop-i386.iso

Resolving cdimage.ubuntu.com... 91.189.92.164

접속 cdimage.ubuntu.com|91.189.92.164|:80... 접속됨.

HTTP request sent, awaiting response... 200 OK

Length: 722745344 (689M) [application/x-iso9660-image]

Saving to: `xubuntu-11.04-desktop-i386.iso'

 

100%[==========================================>] 722,745,344 6.70M/s in 2m 51s

2011-08-07 18:59:57 (4.03 MB/s) - `xubuntu-11.04-desktop-i386.iso' saved [722745344/722745344]

 

/* 해당 사이트 MD5SUMS 파일 다운 */

$ wget http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/MD5SUMS

--2011-08-07 19:03:00-- http://cdimage.ubuntu.com/xubuntu/releases/11.04/release/MD5SUMS

Resolving cdimage.ubuntu.com... 91.189.92.174

접속 cdimage.ubuntu.com|91.189.92.174|:80... 접속됨.

HTTP request sent, awaiting response... 200 OK

Length: 266 [text/plain]

Saving to: `MD5SUMS'

 

100%[==========================================>] 266 --.-K/s in 0s

2011-08-07 19:03:01 (5.88 MB/s) - `MD5SUMS' saved [266/266]

 

/* 체크섬 파일(MD5SUMS) 내용 보기 */

$ cat MD5SUMS

ab4b5b18892afd8d4d3228fbc30061d9 *xubuntu-11.04-alternate-amd64.iso

d5b6d8595c44e9954ebc4f188cb9fb49 *xubuntu-11.04-alternate-i386.iso

f1b224166bea923042e53b0e9d5ff63f *xubuntu-11.04-desktop-amd64.iso

78719bfee11576729a62b4a241d40b19 *xubuntu-11.04-desktop-i386.iso

 

/* MD5SUMS 파일에 기록되어 있는 모든 파일을 한 번에 검증 */

$ md5sum -c MD5SUMS

md5sum: xubuntu-11.04-alternate-amd64.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-alternate-amd64.iso: 열기 또는 읽기 실패

md5sum: xubuntu-11.04-alternate-i386.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-alternate-i386.iso: 열기 또는 읽기 실패

md5sum: xubuntu-11.04-desktop-amd64.iso: 그런 파일이나 디렉터리가 없습니다

xubuntu-11.04-desktop-amd64.iso: 열기 또는 읽기 실패

xubuntu-11.04-desktop-i386.iso: 성공

md5sum: 경고: 3 중 4 개의 파일들을 읽을 수 없었음

 

/* 체크섬 파일에 있는 파일 목록 중 하나만을 검증 */

$ cat MD5SUMS | grep *desktop-i386* | md5sum -c

xubuntu-11.04-desktop-i386.iso: 성공

MD5SUMS 파일 대신 SHA1SUMS 파일을 가지고 있더라도, sha1sum 명령어와 동일

 

 

[ /etc 디렉토리의 모든 파일에 대한 체크섬 생성 & 검증 ]

♧ find 명령어와 md5sum 명령어를 함께 사용한다면 파일시스템의 어떠한 부분이라도 검증할 수 있다.

 

① /etc 디렉토리의 모든 파일에 대한 md5 체크섬 생성

$ sudo find /etc -type f -exec md5sum {} \; > /tmp/md5.list 2> /dev/null

128비트 체크섬이 기록된 /tmp/md5.list 파일 생성.

 

② 시간이 지난 뒤, 이들 중 어떤 것이 변경 되었는지 확인

$ sudo md5sum --quiet -c /tmp/md5.list

/etc/hosts.allow: 실패

md5sum: *경고*: 1588 중 1개가 서로 일치하지 않는 체크섬으로 계산됨match

☞ 결과에서 볼 수 있듯이, 하나의 파일(hosts.allow)만 변경 되었다.

☞ 필요 하다면 다음 단계로 변경된 파일을 조사하여 의도적인 것인지 살펴본다.


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

[리눅스] 유용한 find , grep 사용법  (1) 2015.10.11
[Linux] iscsi.conf timeout 관련  (0) 2015.06.10
[리눅스] parted  (0) 2014.11.18
[리눅스] kdump  (0) 2014.11.07
[리눅스] nohup  (0) 2014.10.31
Posted by 뭉탁거림
,

[리눅스] parted

리눅스-Linux 2014. 11. 18. 10:28

리눅스의 부트로더 grub / lilo 의 경우 DOS 파티션 테이블을 사용을 합니다.


여기서 파티션이란?

: 연속된 저장 공간을 독립된 영역으로 나누어서 사용

파티션의 종류 : 자세한 내용은 구글링..

1) DOS 파티션 table

2) BSD DISK Lable

3) Apple 파티션 MAP


fdisk의 경우 2TB 이상을 넘겨서 사용할수가 없다(64bit 포함)
즉 2TB 이상의 실린터를 컨드를 할수 없다는 의미로 2TB이상을 사용하기 우해선 GNU parted를 사용해서 파일시스템을 구성해야 된다


MBR / GTP 방식의 차이


- parted를 이용한 파티션 설정

1) 2TB를 너믄 파티션의 경우 gtp 라벨을 사용

2) kernel에 2TB 이상의 파티션을 사용할 수 있게 설정(대부분 설정되어있음)

3) parted는 설정과 동시에 디스크에 기록(fdisk와 다름)

# parted /dev/sdb

# print


gpt lable 생성

# mklable gpt

bsd, gpt, loop, mac, mips, msdos, sun 등 지원

일반적으로 msdos이며 2TB 이상 사용시 gpt 사용


파티션 생성

# mkpart primary 0 3TB

# print

# quit


파티션 확인

#fdisk -l



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

[Linux] iscsi.conf timeout 관련  (0) 2015.06.10
[리눅스] 파일 무결성 검증  (1) 2014.11.18
[리눅스] kdump  (0) 2014.11.07
[리눅스] nohup  (0) 2014.10.31
[리눅스] fuser  (0) 2014.05.22
Posted by 뭉탁거림
,

[리눅스] kdump

리눅스-Linux 2014. 11. 7. 11:27

kdump는 kernel 패닉또는 crash가 발생했을 때 메모리 덤프를 생성하는 역할

kexec는 부팅 시 메모리에 상주하고 패닉발생시 현재 커널을 정지시키고 dump용 커널을 동작시킴


# yum install kexec-tools


kdump 설정 파일

# vi /etc/kdump.conf

#raw /dev/sda5

#ext4 /dev/sda3

#ext4 LABEL=/boot

#ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937

#net my.server.com:/export/tmp

#net user@my.server.com

path /var/crash

core_collector makedumpfile -c --message-level 1 -d 31

#core_collector scp

#core_collector cp --sparse=always

#extra_bins /bin/cp

#link_delay 60

#kdump_post /var/crash/scripts/kdump-post.sh

#extra_bins /usr/bin/lftp

#disk_timeout 30

#extra_modules gfs2

#options modulename options

#default shell

#debug_mem_level 0

#force_rebuild 1

#sshkey /root/.ssh/kdump_id_rsa

#fence_kdump_args -p 7410 -f auto -c 0 -i 10

#fence_kdump_nodes node1 node2


You can also set the amount of reserved memory to be variable, depending on the total amount of installed memory. The syntax is for variable memory reservation is crashkernel=<range1>:<size1>,<range2>:<size2>. For example:
crashkernel=512M-2G:64M,2G-:128M
The above example will reserve 64 MB of memory if the total amount of system memory is 512 MB or higher and lower than 2 GB. If the total amount of memory is more than 2 GB, 128 MB will be reserved for kdump instead.
On some systems, it might be necessary to reserve memory with a certain fixed offset. If the offset is set, the reserved memory will begin there. To offset the reserved memory, use the following syntax:
crashkernel=128M@16M
The example above means that kdump will reserve 128 MB of memory starting at 16 MB (physical address 0x01000000). If the offset parameter is set to 0 or omitted entirely, kdump will offset the reserved memory automatically. This syntax can also be used when setting a variable memory reservation as described above; in this case, the offset is always specified last (for example, crashkernel=512M-2G:64M,2G-:128M@16M).

NOTE: Kernel Dump를 생성하기 위해 메모리 공간을 예약

RHEL 5
crashkernel=128M@16M

RHEL 6 - Memory 2GB 이하
crashkernel=128M

RHEL 6 - Memory 2GB 이상
crashkernel=auto

128MB 기본 할당에 Memory 1TB에 64MB씩 추가됨 (절대 용량은 아님)
e.g.) DL980 G7에
 Memory 1TB > 192M
     DL980 G7에 Memory 4TB > 320M


nmi_watchdog=1

nmi_watchdog을 활성화
시스템이 일정시간 응답이 없는 경우 특정 Task를 구동하는 타이머

http://infoages.tistory.com/1327

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

[리눅스] 파일 무결성 검증  (1) 2014.11.18
[리눅스] parted  (0) 2014.11.18
[리눅스] nohup  (0) 2014.10.31
[리눅스] fuser  (0) 2014.05.22
[Linux] automount  (0) 2014.05.20
Posted by 뭉탁거림
,

[리눅스] nohup

리눅스-Linux 2014. 10. 31. 13:18

nohup 실행문 &


ex) nohup ls -al &

nohup script.sh &


nohup.out 이라는stdout file 생성


만약 파일 이름을 다른걸로 바꾸고 싶을 때는


nohup 실행문 > 파일명 &


nohup script.sh > test.log &




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

[리눅스] parted  (0) 2014.11.18
[리눅스] kdump  (0) 2014.11.07
[리눅스] fuser  (0) 2014.05.22
[Linux] automount  (0) 2014.05.20
[리눅스] boot process  (0) 2014.05.20
Posted by 뭉탁거림
,

[리눅스] fuser

리눅스-Linux 2014. 5. 22. 10:15

fuser : 특정 파일이나 파일시스템 사용하는 프로세스나 유저 확인


command 옵션

fuser : 특정 파일을 사용하는 프로세스 확인(pid)

fuser -u : 특정 파일을 사용하는 프로세스 및 user 확인\

fuser -v : 자세히보기

fuser -k : 해당 파일과 관련된 프로세스 KILL


[root@Centos1 ~]# fuser /root/data/

/root/data/:         13822c

[root@Centos1 ~]# umount /root/data/

umount: /root/data: device is busy

umount: /root/data: device is busy

[root@Centos1 ~]# fuser -u /root/data/

/root/data/:         13822c(root)

[root@Centos1 ~]# fuser -uv /root/data/


                     USER        PID ACCESS COMMAND

/root/data/:         root      13822 ..c.. (root)bash

[root@Centos1 ~]# fuser -k /root/data/

/root/data/:         13822c





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

[리눅스] kdump  (0) 2014.11.07
[리눅스] nohup  (0) 2014.10.31
[Linux] automount  (0) 2014.05.20
[리눅스] boot process  (0) 2014.05.20
[리눅스] cron  (0) 2014.04.01
Posted by 뭉탁거림
,