'전체 글'에 해당되는 글 1422건

  1. 2006.04.04 리눅스에서 pop3와 imap 설치시.
  2. 2006.04.03 리눅스에서 하드디스크 백업

반응형

기존 페도라 core1 까지는
imap 관련 rpm을 설치해야 나중에
pop3나 imap을 사용할수 있었다.

하지만 센트OS나 코어버전2이상은
그런 패키지가 없다.

한참 삽질한 후에 dovcot 패키지를
찾아서 설치하면 OK.
,

반응형
리눅스에서 데이터를 백업하는 것은 필수다. 비록 리눅스가 다른 OS에 비해 안정성이 높아 웬만한 시스템 장애로는 데이터를 날리는 경우가 없으나 리눅스 외의 다른 요인으로 데이터를 손상하는 경우가 많기 때문이다.

가장 흔한 경우가 하드디스크에 배드가 있는 경우다. 또 해킹으로 날리는 경우도 많다. 따라서 리눅스에서 동일 하드의 다른 파티션에 백업하는 것은 거의 효용이 없다. 배드가 나오면 그 하드는 부팅도 안되는 경우가 많고 해커가 루트로 침투한다면 모든 파티션이 위험하기 때문이다. 따라서 다른 하드나 외장 백업장치를 사용하는게 필요하다.  필자가 권하는 백업방법은 테이프 백업보다 하드디스크를 사용하는 것이다. 값도 싸고 백업이 간편하며 특히 복구가 빠르기 때문이다.

하드디스크를 백업장치로 사용할 경우의 정책 결정은 아래와 같다.

1. 시스템을 잠시라도 정지해서는 안되는 중요한 시스템의 경우는 별도의 하드에 기존 하드와
   똑 같게 복사해 놓는 방법이다. 별도의 하드는 백업시에만 마운트해 사용하고 그 외의
   시간에는 umount 하므로 해킹을 당하는 경우도 비교적 안전하다. 이 경우 메인 하드에
   이상이 발생하면 두 번째 하드로 케이블 연결만 변경하면 되므로 다운 시간은 5분 이내
   일 것이다.

   다른 하드에 기존의 하드의 내용과 똑 같게 복사하는 방법은 리눅스월드 99년 6월에
   실었다. 이 경우는 가급적 리눅스와 데이터를 별개의 파티션에 분리하는 것이 좋다.
   리눅스는 거의 설정이 바뀌지 않으므로 1주일에 1회 정도 백업하고 데이터만 매일
   백업하는게 낫기 때문이다. 사용하는 명령은 tar가 가장 낫다.

   예를들어 /pub 의 내용을 다른 하드에 그대로 복사한다면 아래 명령을 사용하면 된다.

1) 백업 하드를 임의의 디렉토리에 마운트한다.

    mount /dev/sda1 /mnt

2) /pub 디렉토리의 모든 파일을 백업 하드에 복사한다.

    - cd  /pub
    - tar cf - * | ( cd /mnt ; tar xvf - )

3) 백업하드를 umount 한다.

    umount /mnt

2. 시스템을 1 ~ 2 시간 정도 정지해도 무관한 경우라면 리눅스는 중요 설정 파일만 백업하고
   (/etc 디렉토리) 데이터만 백업하는 방법이 낫다. 리눅스 재설치는 한 두 시간이면 가능하기
   때문이다.

   리눅스에서 tar로 백업할 때 가장 귀찮은 것은 기존의 파일을 모두 지우고 새로 복사해야
   한다는 점이다. 이유는 기존의 파일들을 놔 두고 tar로 복사하면 원본에서 지운 파일도
   계속해서 백업하드에 축적돼 백업 하드의 파일이 계속 늘어나기 때문이다.
   물론 어떤 옵션을 사용하면 이를 방지할 수 있는지도 모르나 이를 파악하기 귀찮아 필자는
   아래 프로그램을 사용해 백업한다.

   프로그램 이름은 Backup Copy 인데 sunsite에서 다운 받은 것으로 기억한다.
   이 프로그램은 백업시 원본에서 파일이 지워지면 백업 디렉토리의 파일도 역시 지우며
   변경된 파일만 백업하므로 백업 속도도 빠르다.

설치

1. cpbk-2.0.tar.gz 파일을 압축을 해제한다.

   tar zxvf cpbk-2.0.tar.gz

   cpbk-2.0 디렉토리가 생성되고 그 안에 소스파일들이 위치한다.

2. cd cpbk-2.0
   
3. make

4. make install

   /usr/local/bin 디렉토리에 실행 파일 cpbk 가 만들어진다.



사용법

cpbk-2.0 디렉토리의 README.DOC 파일을 읽어야 한다.
man cpbk 하면 자세한 사용법이 나온다.

아래 실제 사용 예를 들겠다.

백업 하드는 /dev/sda1이고 매일 새벽 5시 1분에 백업한다.
백업할 원본 하드의 디렉토리는 /htdocs/linuxlab 과 /htdocs/cgi-bin 이다.

1. /dev/sda1 에 아래 처럼 두 디렉토리를 만든다.
  (물론 그 전에 fdisk 와 mke2fs 명령으로 하드를 포맷해야 한다.)

/homepage/linuxlab
/homepage/cgi-bin

2. /etc/cron-root 파일에 아래처럼 넣는다.
  (이 파일은 스크립트가 아니다.)

1  4  *  *  1  /sbin/e2fsck -p /dev/sda1
1 5  *  *  *  /etc/auto_backup

* 첫번 줄은 매주 월요일 4시 1분에 /dev/sda1 파티션을 검사한다.
* 두번째가 매일 5시 1분에 백업을 실행한다.

3. /etc/auto_backup 파일을 아래처럼 만든다.
  (이 파일은 실행 파일이다. chmod 755 가 필요하다.)

cat /etc/auto_backup
#!/bin/bash
mkdir /_zzz
mount /dev/sda1 /_zzz
/usr/local/bin/cpbk -rn /htdocs/linuxlab \
/_zzz/homepage /linuxlab
/usr/local/bin/cpbk -rn /htdocs/cgi-bin \  
/_zzz/homepage /cgi-bin
cd /
umount /_zzz
rmdir /_zzz
date | mail -s "Back-up completed" bae@linuxlab.co.kr

4. crontab cron-root 명령으로 crontab에 등록한다.

   이제 매일 백업되고 백업이 끝나면 메일이 온다.

5.  cron 이 작동 중인지 알려면 아래 명령을 준다.

> crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (cron-root installed on Wed Dec 27 11:23:35 2000)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
1  4  *  *  1  /sbin/e2fsck -p /dev/sda1
1 5  *  *  *  /etc/auto_backup

    주의할 것은 /dev/sda1 파티션을 /dev/fstab에서 마운트 하지 말라는 것이다.
    백업을 확인하기 위해서 mount 한 후에도 반드시 umount 해두어야 백업이 이루어진다.
,