본문 바로가기

자격증/리눅스 마스터 1급

Part2) 리눅스 시스템 관리 -시스템 보안 및 관리(3) | 시스템 백업

I. 시스템 백업


시스템 백업의 정의 및 개요

1) 백업의 정의

*백업을 위한 검토사항
  • 이식성: 백업된 데이터를 다른곳에서도 복원할 수 있는지에 대한 부분
  • 자동백업: 사람의 개입없이 정해진 시간에 정기적으로 백업이 진행될 수 있는지의 대한 부분
  • 사용의 편의성: 사용하기 쉬운 인터페이스를 제공하는가의 문제에 대한 부분
  • 원격백업: 원격지에 있는 호스트의 백업가능한지의 문제에 대한 부분
  • 네트워크백업: 네트워크로 연결된 호스트의 백업과 복구를 실행하는 기능을 사용하기 위한 부분
  • 매체의 종류: 백업데이터를 저장할 매체를 어떤 것으로 결정할지에 대한 부분
2) 백업의 종류

*데이 제로 백업(A Day-zero Backup)
  • 시스템을 설치 후 사용자들이 시스템을 사용해보기 전에 시스템의 모든 파일들과 프로그램들을 백업한다.
*풀 백업
  • 주기적으로 시스템의 모든 파일과 어플리케이션들을 백업한다.
*변경분 백업(An Incremental Backup)
  • 이전의 백업 후 변경된 파일들만 백업한다.
*단순 백업
  • 풀 백업 후에 변경분 백업을 주기적으로 실시한다.
  • 개인적인 용도나 작은 규모의 시스템에서 사용하기 적당하다.
*다단계 백업
  • 적은 비용으로 백업 보장 기간을 늘릴수 있다.
  • 파일 시스템을 복원하는데 드는 시간을 최소화 할 수 있다.
  • 백업 기획안이 복잡해짐에 따라 신경쓸 부분이 많아진다.
  • 좀더 중요한 업무를 다루거나 규모가 큰 시스템에서 사용하기 적당하다.

3) 백업 정책 구성 방안

    *백업의 요령
    • 자료 가치에 따라 다른 백업 전략을 취하라.
    • 백업테이프는 번갈아가며 사용하라.
    • 오랫동안 보관하기 위한 백업 테이프를 준비하자.
    • 주기적으로 백업 테이프의 상태를 확인하자.
    • 백업테이프는 가급적으로 컴퓨터로부터 떨어진 곳에서 보관하자.
    • 백업을 한 후에는 백업테이프에 쓰기 방지를 해두자.
    • 중요한 백업자료에는 암호화를 해두자.


    *백업계획을 세우기 위한 요소
    • 시스템의 전체 용량
    • 사용하는 백업 기기의 종류
    • 백업할 자료의 가치
    • 백업하기 위하여 필요한 시간과 재정
    • 백업 자료의 필요성

    4) 시스템 파일 백업

    *데이터 파일 뿐만 아니라 시스템 파일을 백업해야 되는 이유
    • 시스템의 중요한 파일들을 실수로 지우거나 수정했을 경우 복원을 위해 필요하다.
    • 시스템에 인가되지 않은 사용자가 침투하여 시스템의 중요파일들에 대한 수정을 가할 경우 이를 감지하기 위해 필요
    • 시스템을 업그레이드 할 경우 시스템의 설치를 쉽게 하기 위해서

    시스템 백업관련 명령어

    1) cpio

    *cpio에 대해서
    • 파일을 아카이브 형태로 복사하는 프로그램이다.
    • 리눅스 파일을 테이프 드라이브에 백업하기 위한 프로그램이다.
    • 커널에 익스텐션 모듈을 인식하기 위해 사용된다.
    • 바이트 스와핑과 다른 형식의 아카이브로 기록할 수 있다.
    • 파이프를 통해 다른 프로그램으로 데이터를 넘겨줄수 있다.
    • 네트워크를 통한 백업은 지원하지 않지만, 파이프라인을 통한 rsh를 이용하여 원격지로 전송이 가능하다.

    *cpio 사용법

     Copy-Out mode 

     보존파일을 만들거나 파이프라인으로 다른 프로그램으로 데이터를 전송할 때 사용하는 방식

     # cpio -o //디스크로 부터 보관파일로 파일을 복사

     Copy-In mode

     보존파일이나 다른 프로그램에서 파이프라인을 이용하여 데이터를 전송 받을때 사용하는 방식

     # cpio -i //보관 파일에서 파일을 디스크로 추출

     Copy-Pass mode

     표준 입력으로 받은 파일을 인수에 지정된 디렉터리 경로로 복사

     # cpio -p 


    cpio 옵션

     옵션

     의미 

    -c

     헤더 정보를 ASCII 양식으로 기록한다.

    -d

     디렉터리를 지정한다.(-o옵션과 같이 사용 X) 

    -E

     Copy-In mode에서 복사할 파일 목록이 기록되어 있는 파일을 지정한다.(-o, -p 옵션과 같이 사용 X) 

    -l

     가능할 경우에 파일들의 사본이 아닌 파일 자체와의 링크를 생성한다.

    -u

     동일한 이름을 가진 기존 파일 위에 겹쳐 쓰도록 파일을 복사한다 .(-o와 같이 사용 X)

    -v

     파일 복사가 진행됨에 따라 파일명을 표시해준다. 

    -V

     파일들의 복사가 진행됨에 따라 각 파일에 대한 하나씩의 점을 표시해 사용자가 복사 진행 속도를 알수 있게 해준다. 



    cpio로 데이터를 복원할 경우 예시
    # cpio -icdv < jalin.cpio

    cpio를 이용하여 백업하는 과정 예시
    # ls *.conf | cpio -ocv > posein.cpio
    # find /home | cpio -ocv > home.cpio

    2) taper: 테이프의 백업과 복구 프로그램으로 증분 백업과 복구시 최신 데이터 복구가 기본값이다.(SCSI, ftape, zftape, 이동식 드라이브 지원)


    3) dump

    *dump의 장점 및 기능
    • 여러개의 테이프에 백업할 수 있다.
    • 어떤 타입의 파일도 백업, 복구 될수 있다.
    • 파일에 대한 접근권한, 소유자 등의 사항도 복구될 수 있다.
    • 결함을 가진 파일들도 다룰 수 있다.
    • 전체 백업 뿐만 아니라 증분 백업도 지원
    • 백업이 기존 파일에 내용을 더하면서 수행될 수 있다.
    • 파티션 단위의 백업을 지원한다.
    • 점진적인 백업 기능을 제공한다.
    • 0-9까지의 레벨 수준을 설정하여 백업을 진행 할 수 있다. (0=full backup)
    • 여러개의 백업을 동시에 수행할 수 있다.
    • 복원restore 명령을 사용한다.

    *dump의 단점
    • 모든 파일 시스템은 개별적으로 dump해야 한다.
    • 파티셔닝이 된 디스크를 dump하기 위해선 파일시스템이 생성된 파티션마다 dump하여야 한다.
    • 로컬 머신에서만 사용 가능하다.
    • NFS 파일시스템에서는 사용할 수 없다.

      dump 명령으로 백업된 데이터를 하나씩 확인하면서 복원하는 명령어
      # restore -if /dev/st0

      ※dump 명령으로 /etc/fstab에 관련해 참조되는 필드 영역
      /dev/sda7   /backup   ext4   defaults    1  2
                                                         ▲     


      4) rdist

      *rdist에 대해서
      • 시스템 관리 및 전체 노드의 저장장치를 항상 동일하게 유지시키는데 사용한다.
      • 파일 퍼미션, 생성 날짜 등의 메타정보를 일치시켜준다.
      • 여러 호스트에 파일들이 동일하도록 유지시키는 시스템 관리 명령어이다.
      • rdist 명령어를 사용하기 위해서는 "/etc/hosts.equiv" 파일과 "/.rhosts" 파일을 원하는 host와 사용자에 맞게 편집해 주어야 한다.
      • 복수의 시스템들 사이에 파일을 복제, 변경되는 파일들을 갱싱하면서 중요한 파일들의 변경 사항을 모니터 가능하다.
      • 파일 복제: 시스템 들간 파일을 동기화하고 중요한 파일들이 변경되지 않은 것을 확인하는 방법이다.
      *rdist 관련파일 - /root/install_files

      필드
      SYS_FILES: 복사하고자 하는 파일 or 디렉터리
      GET_ALL: 파일이 전송되어야할 호스트 네임

      실행
      # rdist -f install_files

      *


      5) rmt: dump, restore, tar와 유사한 백업 프로그램에서 테이프 장치에 원격 접근을 가능하게 한다.

      6) tar/gzip

      *압축 명령어
      • tar: 여러개의 파일을 하나의 큰파일로 묶어주지만 자체적인 압축 기능이 없어 용량이 줄어들지 않는다.
      • gzip: 파일용량을 줄여 저장 공간을 확보하기 위해 압축을 유틸리티의 도움을 받는데 주로 사용한다.

      *압축을 사용한 백업
      • 비용을 줄일 수 있다.
      • 작은 손상에도 모든 데이터를 잃을 수 있다.
      • 백업 소요 시간이 크게 줄어든다.
      *압축명령어 예시

      증분 백업의 예 (-g옵션)
      # tar -g list -vfp home1.tar /home

      tar 아카이빙 및 압축시(-p: 퍼미션 유지, -z: gzip압축/압축 해제)
      # tar cvfpz bjkim-test.tar.gz bjkim-test

      tar 아카이브 해제 및 압축 해제시
      # tar xvfpz bjkim-test.tar.gz

      7) dd

      *dd에 대해서
      • 블록 단위로 파일을 복사하거나 변환하는 명령어이다.
      • 디스크, 파티션 단위로 백업시 사용한다.(디렉터리 단위 X)
      • 디스크 디바이스에 대한 이미지 백업을 만들거나, 디바이스 간의 복제등 백업에 많이 이용된다.
      • 소문자로 이루어진 텍스트 파일을 전부 대문자로 전환 시 사용한다.
      *dd 명령어 옵션

       옵션

       의미 

       bs=BYTES

       한번에 입력 및 출력할 byte양을 설정한다. 

       cbs=BYTES

       한번에 변환할 byte양을 설정한다. 

       if=FILE 

       표준입력을 대신할 파일 입력을 지정한다. 

       of=FILE

       표준출력을 대신할 파일 출력을 지정한다.

       ibs=BYTES

       한번에 입력할 byte양을 설정한다.

       obs=BYTES

       한번에 출력할 byte양을 설정한다. 

       skip=BLOCKS

       입력 시작시 지정된 BLOCK의 단위만큼 ibs의 크기를 건너뛰고 입력을 시작한다. 

       seek=BLOCKS

       출력 시작시 입력된 BLOCK의 단위만큼 obs의 크기를 건너뛰고 출력을 시작한다. 

       noerror

       에러를 만나더라도 계속 진행한다. 

       sync

       입력된 ibs와 출력된 obs 사이에 사이가 있을 경우 그 공백을 NULL로 채운다. 


      dd 명령어를 사용한 디스크간 복제 수행 예시

      # dd if=/dev/sda of=/dev/sdc bs=1024



      ※ 번외문제

      해당 디렉터리를 / 로 사용하려고 할 때 사용하는 명령어이며, 별도의 명령을 기술하지 않으면 / 가 변경된 쉘을 얻을 수 있는 명령어는?
      "chroot"


      특정 사용자 계정 디렉터리의 전체 사용량을 검사하며, 출력은 human readalbe 옵션을 사용하고, 실행은 그 계정 디렉터리에서 수행시 명령은?
      "du -sh"

      ping 응답하지 않기 위해 커널 파라미터값을 조정하려고 할때 명령어는?
      # sysctl -w net.ipv4.icmp_echo_ignore_all=1


      리눅스 백업 대상이 되는 디렉터리로 가장 거리가 먼 것은?

      "/sys"  [/etc, /usr, /var = 백업 대상과 관련]