'백업'에 해당되는 글 3건

  1. 2007.02.23 리눅스 백업 방법 3
  2. 2007.02.23 리눅스 백업 방법 2
  3. 2007.02.23 리눅스 서버의 백업
2007. 2. 23. 22:01

리눅스 백업 방법 3


있습니다 !!!

시스템에 문제가 생겼을경우 다시 표멧하고 재설치 한 후 모든 셋팅을 새로 하지요...

하지만 긴급한 경우를 생각하여 고스트처럼 파티션을 백업받아 처음의 설정 그대로 복구 할수가

있습니다.

프로그램 이름은 SystemRescueCd, Partition Image 프로그램입니다.

흔히 아는 dd 는 전체를 백업받아 아주 무겁지만 요것들은 사용하는 공간만 백업하므로 크기를

많이 줄일수있습니다.

SystemRescueCd 는 부팅가능한 CD-ROM 이미지를 제공합니다. 여기에는 GNU Parted (파티션툴),

QtParted (리눅스용 파티션 매직 클론 프로그램), Partimage (리눅스용 고스트), File systems tools , Sfdisk

(파티션 테이블 백업 및 복원) 프로그램등으로 구성이 되어 있습니다.
2007. 2. 23. 21:54

리눅스 백업 방법 2

저도 비슷한 고민으로 이것저것 시도해 봤는데,
폴더를 통째로 백업을 하는 경우라면 tar 를 이용한 백업이 가장 확실하더군요.
권한,날짜등을 그대로 유지시켜 줄 뿐만 아니라(zip,rar같은 압축으로는 해결못하는 부분이죠),옵션도 매우 다양하고 분할압축도 가능합니다.



그리고 리눅스에서도 고스트처럼 백업이미지 프로그램이 있습니다.
1.dd(기본명령어)를 이용하는 방법.
2.Partimage (http://www.partimage.org) ->무료
3.TrueImage (http://www.acronis.com) ->상용
저는 TrueImage를 쓰는데,완벽하게 잘 처리해 주더군요.(ext3,swap)



그리고 하드교체시 용량이 틀려도 상관없습니다.
tar로 백업해둔 걸 그대로 풀어놓으면 됩니다.
저같은 경우는 6기가의 하드에 이것저것 설치하고 세팅한 뒤에 TrueImage로 만들어 두었는데,
나중에 13기가로 옮길때 그냥 복구할때 자동으로 용량조절 해주더군요.
단,데이터 폴더(var,usr)는 심볼릭 링크를 이용해서 다른 하드디스크에 저장되도록 해 두었습니다.


이상,제가 알고있는 한도내에서 썼습니다.
혹시 잘못된 부분이나 추가할 것이 있으면 말씀해 주세요.
2007. 2. 23. 21:46

리눅스 서버의 백업

제 8장. 백업과 복구 절차

정기적으로 백업을 수행하는 것은 책임있는 시스템 관리자에게는 최우선의 일로 간주되어야 한다. 비록 리눅스가 극도로 안정적인 운영체제이지만, 장애는 일어날 수 있고, 일어나고 있으며, 아마도 일어날 것이다. 하드웨어상의 장애, 정전 또는 그 외 예측하지 못한 문제로부터 이러한 장애는 발생할 수 있다.

그러나 이러한 요인보다는 사람의 실수에 의하여 문제가 발생하는 경우가 더 많다. 그 결과로 중요한 파일을 원하지 않게 고치거나 심지어는 삭제할 수가 있다. 만약 당신의 시스템을 여러 사용자들이 쓰고 있다면 아마 실수로 지운 파일을 복구해달라는 요구를 틀림없이 받게될 것이다.

만약 정기적으로 백업을 한다면 (최소한 자주 갱신되는 사용자 파일들이라도) 그것도 일단위로 한다면 그러한 파일 손실의 가능성을 줄이고 복구 가능성을 높일 수 있다.

백업을 실행하는 가장 안전한 방법은 테이프, 제거가능한 드라이브, 기록가능한 씨디 등 분리된 매체에 기록하여 리눅스 시스템과는 떨어진 위치에 저장해두는 것이다. 어떤 경우에는 이러한 것이 현실성이 없을 수도 있다 -- 아마 백업 테이프를 넣어 둘만한 내화성 금고를 갖고 있지도 않을 것이다! 또는 처음에는 외장 백업 시스템 자체가 없을 수도 있다. 그렇다손 치더라도 백업을 어떻게든 비록 제한된 방법으로나마 수행할 수는 있다.

우리 회사에서 나는 여러대의 리눅스 서버에 대하여 백업을 수행한다. 상황에 따라서 어떤 백업 세트는 테이프에 쓰고 또 어떤 것은 네트웍으로 연결된 다른 서버에 쓰기도 하고 그렇지도 않은 것들은 다른 디스크 파티션에 (예컨대, ``/archive/'' 파일 시스템에) 쓰기도 한다. 이 작업은 자동으로 cron 작업으로 실행된다. (대개 서버는 다른 곳에 있는 경우가 많으므로 테이프 백업을 하기 위하여 여기 저기를 매일 같이 방문한다는 것은 실용적이지 않거나 불가능하다.)

집에서는 외장 백업 시스템이 없을 뿐만 아니라 백업 이미지를 기록해둘만한 여분의 디스크 공간을 충분히 갖고 있지도 않다. 따라서, 따라서, 대신 ``/home/'' 디렉토리에 있는 나의 사용자 파일과 ``/etc/'' 디렉토리에 있는 몇몇 설정 파일만을 별도의 디스크 파티션에 백업하고 있다.

서버의 백업 절차

리눅스에서 백업을 수행하는데에는 매우 다양한 방법이 있다. 모든 리눅스 배포판에 포함되어 있는 명령행 도구인 ``dd'', ``dump'', ``cpio'', 나 ``tar'' 를 사용하는 방법도 이에 속한다. 그 외에도 백업과 복구 절차에 좀 더 사용하기 편리한 인터페이스를 추가하려고 만든 텍스트 기반의 유틸리티로서 ``아만다(Amanda)'' 와 ``테이퍼(Taper)'' 가 있다. 구이 기반의 ``KDat'' 라는 유틸리티도 있다. 마지막으로는 상용 백업 유틸리티로서 ``BRU'' 와 ``PerfectBackup+'' 가 있다. 이들 중 어느 것을 사용하더라도 당신의 귀중한 자료를 보호할 수 있다.

사용가능한 도구와 그것을 어디서 얻을 수 있는 지를 정리한 목록은 http://www.xnet.com/~blatura/linapp2.html#back 에 있는 "Linux Applications and Utilities Page" 에서 얻을 수 있다. 백업 솔루션을 결정할 때에는 다음과 같은 사항을 고려할 필요가 있다:

  • 이식성 - 백업의 이식성이 (즉, 한 리눅스 또는 유닉스 시스템에서 백업한 것을 다른 시스템에 복구하는 것; 예를 들어, 솔라리스에서 백업한 것을 레드햇 리눅스에다가 복구하는 경우) 중요한가? 만약 그렇다면 명령행 도구(예. ``dd'', ``dump'', ``cpio'', ``tar'')를 사용하는 것이 좋을 것이다. 왜냐하면, 그러한 도구는 어떤 리눅스/유닉스 시스템에서도 사용가능하다고 확신할 수 있기 때문이다.

  • 자동 백업 - 사람의 개입없이 정기적으로 자동화된 백업이 수행되는 것이 당신에게 중요한가? 만약 그렇다면, 그러한 백업 방식을 지원할 수 있는 도구와 백업 매체를 갖추어야 할 것이다.

  • 사용의 편의성 - 편리한 사용자 인터페이스가 중요한가? 그렇다면 텍스트 또는 구이 기반의 인터페이스를 제공하는 도구를 선택하고 싶을 것이다. 상용 유틸리티는 가장 사용하기 쉬운 인터페이스를 제공할 뿐 만 아니라 기술지원도 해줄 수 있다.

  • 원격 백업 - 원격지의 기계에서 백업을 시작하거나 복구하는 기능이 중요한가? 그렇다면, (X 세션을 무리없이 실행할 수 있을 정도로 고속 네트웍으로 연결되어 있지 않다면) 구이 기반의 유틸리티보다는 명령행 도구나 텍스트 기반의 유틸리티를 선택하는 것이 좋을 것이다.

  • 네트웍 백업 - 네트웍으로 연결된 호스트의 백업과 복구를 실행하는 것이 중요한가? 만약 그렇다면, 백업 장치에 대하여 네트웍 액세스를 지원하는 (``tar'' 같은) 명령행 유틸리티나 ``아만다(Amanda)'' 같은 특별한 유틸리티 또는 상용 유틸리티가 좋을 것이다.

  • 매체의 종류 - 백업은 테이프, 추가의 하드 드라이브, 집 드라이브, 다시쓸 수 있는 씨디 등 다양한 매체에 저장될 수 있다. 가격 대 안정성, 저장 용량, 전송 속도 등을 비교하여야 할 것이다.

Caution

특별 주의: 파일 시스템을 백업할 때, 가짜 파일 시스템인 ``/proc'' 를 절대로 포함시키지 마라! /proc 에 있는 파일은 실제 파일이 아니고 파일 모양의 링크로서 커널의 자료구조를 가리키고 있다. 당신의 전체 메모리의 내용을 담고 있는 가짜 파일인 ``/proc/kcore'' 파일을 백업하는 것은 테이프의 엄청난 낭비일 뿐이다! :-) 또한, 씨디롬 장치, 플로피 장치, 네트웍 파일 공유 그리고 그 외 마운트된 장치의 내용을 백업하려는 경우가 아니라면, ``/mnt'' 파일 시스템도 백업하지 않도록 하여야 한다.

당연히, 당신이 어떤 백업 솔루션을 선택하느냐에 따라 백업과 복구를 수행하는 절차는 다르다. 하지만, 이 섹션에서는 내가 가장 자주 사용하는 다음과 같은 두개의 도구를 이용하여 백업을 수행하는 방법을 설명할 것이다: ``tar'' (이 이름은 "Tape ARchiver" 에서 따낸 말이다) 는 명령행 백업 도구로서 유닉스/리눅스 시스템에서 상당히 이식성이 높다. ``KDat'' 는 구이 기반의 테이프 백업 유틸리티로서 KDE 패키지에 (KDE 에 대하여는 KDE 설치와 설정 섹션 - 제 5 장 을 참조하시요) 포함되어 있다.

마지막으로 덧붙이고 싶은 것은 선택한 백업 솔루션에 따라, 심지어는 그 도구가 자동 백업 기능을 내장하고 있지 않다 하더라도, cron 기능을 이용하여 백업을 자동화할 수 있다는 것이다. cron 을 사용하는 방법과 crontab 스케쥴 파일을 만드는 방법에 대한 상세한 내용은 Cron 과 Crontab 파일을 이용하여 작업을 자동화하기 섹션 - 제 9 장 을 참조하시요.

``tar'' 를 이용한 백업:

``tar'' 를 백업 솔루션으로 사용하기로 결정하였다면 다양한 명령행 옵션을 알기 위하여 시간을 투자할 필요가 있다; 옵션에 대한 설명을 보려면 "man tar" 라고 타이핑하면 된다. 그리고 적당한 백업 매체에 액세스하는 방법도 알아야 할 것이다; 비록 유닉스 세계에서는 모든 장치가 파일과 같이 취급되지만, 테이프와 같은 문자 장치에 기록을 할 때에는 "파일" 의 이름이 장치 자체를 나타낸다. (예를 들어, ``/dev/nst0'' 는 스카시 기반의 테이프 드라이브를 나타낸다.)

다음의 명령은 당신 리눅스 시스템 전체를 ``/archive/'' 파일 시스템에 백업할 것이다. 이 백업에서 빠지는 부분은 가짜 파일 시스템인 ``/proc/'', ``/mnt/'' 에 마운트된 파일 시스템, ``/archive/'' 파일 시스템 (백업 셋트 자체를 다시 백업한다는 것은 의미가 없다!), Squid 가 사용하는 상당히 큰 캐시 파일이다. (이들을 백업하는 것은, 내 의견으로는, 백업 매체의 낭비이며 필요하지도 않다):

tar -zcvpf /archive/full-backup-`date '+%d-%B-%Y'`.tar.gz \
--directory / --exclude=mnt --exclude=proc --exclude=var/spool/squid .

이 명령의 길이에 겁먹지마라! 우리가 명령을 구성 부분으로 쪼개놓고 나면 이 강력한 유틸리티의 아름다움을 알게될 것이다.

앞의 명령에서 지적한 옵션으로는, ``z'' (압축; 백업 자료를 ``gzip'' 을 이용하여 압축한다), ``c'' (생성; 새로운 저장 파일을 만든다), ``v'' (수다; 백업이 되고 있는 파일의 목록을 보여준다), ``p'' (퍼미션 보존; 파일 보호를 위한 정보는 복구할 수 있도록 "기억해" 둔다) 가 있다. 그 외에도, ``f'' (파일) 옵션은 그 다음의 인자가 생성할 저장 파일 (또는 장치) 의 이름이라는 것을 나타낸다. 파일 이름에 오늘 날짜를 넣기 위하여 어떻게 했는지 보면, ``date'' 명령을 두개의 역따옴표로 둘러싸서 만들어내고 있다. 일반적으로 사용되는 이름 규칙은 압축되지 않은 저장 파일에는 ``tar'' 를 뒤에 붙이고, 압축된 저장파일의 경우에는 ``tar.gz'' 를 뒤에 붙이는 것이다.

``--directory'' 옵션은 백업을 시작하기 전에 옵션 뒤에 지정한 디렉토리 경로로 일단 가라는 것을 나타낸다. (우리의 예에서는, ``/'' 디렉토리로 가서 백업이 시작된다.) ``--exclude'' 옵션은 지정한 디렉토리나 파일은 백업하지 말라고 지시한다. 마지막으로, ``.'' 글자는 현재 디렉토리에 있는 모든 것을 백업해야 함을 나타낸다.

Note: 주의: tar 에 사용되는 옵션은 대소문자를 구분한다는 것을 명심하여야 한다! 게다가, 대부분의 옵션은 한 글자짜리 (예. ``f'') 로 사용될 수도 있고, 좀 더 외기 쉬운 완전한 옵션 이름 (예. ``file'') 으로도 사용될 수 있다. 한 글자짜리를 쓸 때에는 그 앞에 ``-'' 문자를 붙여야 하고, 완전한 이름을 사용할 때에는 그 글자를 두개를 써야 한다. 다시한번 말하지만, tar 명령에 대한 "man" 페이지를 꼭 참조하기 바란다.

또 하나의 예로서, (앞의 예에서는 전체 를 백업하면서 그 중에 몇가지를 제외하는 방식을 썼지만) 이번에는 지정한 몇개의 파일 시스템만을 스카시 테이프 드라이브에 기록하는 방법을 살펴 보자:

tar -cvpf /dev/nst0 --label="Backup set created on `date '+%d-%B-%Y'`." \
--directory / --exclude=var/spool/ etc home usr/local var/spool

위의 명령에서 ``z'' (압축) 옵션이 사용되지 않았음을 주목하기 바란다. 나는 테이프에 압축된 자료를 기록하는 것을 강력히 반대한다. 왜냐하면, 테이프에 있는 자료의 일부가 깨지면 백업 셋트 전체를 못쓰게 되기 때문이다. 테이프의 일부가 파손되더라도 압축을 사용하지 않고 저장된 경우에는 파손되지 않은 파일은 상당히 많이 복구할 수 있다.

테이프 드라이브는 문자 장치이기 때문에, 실제 파일 이름을 지정하는 것은 불가능하다. 따라서, tar 에서 파일 이름에 해당하는 인자는 장치의 이름 즉 ``/dev/nst0'' (스카시 버스에 연결된 첫번째 테이프 장치) 와 같은 방식으로 지정하여야 한다.

Note: 주의: ``/dev/nst0'' 장치는 백업 셋트를 다 기록한 다음 자동으로 되감기를 하지 않는다; 따라서 하나의 테이프에 여러개의 셋트를 기록할 수 있다. (같은 장치를 ``/dev/st0'' 라고 지정하게 되면 백업 셋트가 기록되자마자 테이프는 자동으로 감기게 된다.)

백업 셋트에 파일이름을 지정할 수 없기 때문에, ``--label'' 옵션을 사용하여 저장 파일 자체에다가 백업 셋트에 대한 추가 정보를 저장할 수 있다.

마지막으로, ``/etc/'', ``/home/'', ``/usr/local'', ``/var/spool/'' 에 있는 파일들만 (Squid 캐시 자료 파일은 빼고) 테이프에 기록된다.

테이프를 이용할 때에는 테이프를 되감거나 꺼내기 위하여 다음과 같은 명령을 사용하게 된다:

mt -f /dev/nst0 rewind
mt -f /dev/nst0 offline

Tip: 팁: 저장 파일이 만들어질 때 맨 앞에 있는 ``/'' (슬래시) 문자는 잘리는 것을 보게 될 것이다. 이는 tar 의 기본적인 동작 방식으로서 복구하는 과정에서 실수로 중요한 파일을 옛날 버전의 파일로 덮어쓰는 것을 막기위한 것이다. 만약 이런 식으로 동작하는 것을 원하지 않는다면 (이것도 하나의 기능 이라는 사실을 기억하라!), tar 명령에다가 ``--absolute-paths'' 옵션을 주면 맨 앞의 슬래시가 보존된다. 물론, 나는 이렇게 하는 것이 위험 하기 때문에 권장하지는 않는다!

``KDat'' 를 이용한 백업:

만약 KDE 데스크탑 환경을 사용하고 있다면, ``KDat'' 유틸리티가 강력할 뿐만 아니라 사용하기도 편리하다는 것을 알게될 것이다. 게다가, 한가지 덤으로 따라오는 것은 KDat 가 ``tar'' 를 백업 엔진으로 사용한다는 점이다. 따라서, KDat 로 기록된 백업 셋트는 KDat 로 읽을 수 있을 뿐만 아니라 tar 를 이용해서도 읽을 수 있다! 따라서 KDat 는 사용의 편리성과 백업의 이식성을 동시에 만족하는 아주 좋은 선택이 되는 것이다.

Tip: 팁: KDE 패키지를 사용하지 않거나 전체를 다 설치하지 않기로 하였다고 하더라도, Qt 라이브러리만 설치한다면 여전히 KDat 를 사용할 수는 있다.

처음으로 KDat 프로그램을 실행시킬 때 백업 프로파일을 만들 필요가 있다. 그러한 프로파일은 KDat 에게 시스템에서 어느 파일을 백업하고 싶은지를 알려주는 역할을 한다. 만약 필요하다면 여러개의 백업 프로파일을 만들 수도 있다. (예를 들어, 시스템 전체를 백업해주는 "전체 백업" 이라는 프로파일과 사용자 파일만 백업해주는 "빠른 백업" 이라는 프로파일을 각각 만들어 두고 필요에 따라 골라 쓸 수 있다.)

백업 프로파일을 만들려면, 메뉴 바에서 "File" 옵션에서 "Create Backup Profile" 을 선택하거나 또는 "Backup Profiles" 폴더에서 오른쪽 버튼을 누른다음 "Create Backup Profile" 을 선택하면 된다. KDat 창의 오른쪽 편에서는 프로파일의 이름, 저장 파일의 이름, tar 옵션 등 다양한 셋팅을 바꿀 수 있다. 이러한 셋팅이 어디에 쓰이는 지를 알려면 메뉴에서 "Help" 를 선택하여 살펴보면 된다.

백업 프로파일에 포함시킬 파일을 지정하려면, ``/'' 디렉토리 폴더의 옆에 있는 체크박스를 클릭하면 된다. 이렇게하면 이 디렉토리 아래의 모든 파일을 백업하도록 지정한 것이 된다. 그러고 나서, 폴더의 옆에 있는 조그마한 ``+'' 표시를 클릭한다. 그러면 폴더가 확장되어 그 안에 들어있는 파일의 목록을 보여준다. 여기서 백업에 포함시키고 싶지 않은 파일을 빼낼 수 있다; 빼고 싶은 파일이나 디렉토리 옆에 있는 체크박스를 클릭해주기만 하면 된다. 예를 들어, 전체 백업은 모든 파일과 디렉토리는 체크 표시를 해주고 단, ``/proc'' (실행 중인 시스템에 대한 정보를 갖고 있는 가짜 파일 시스템), ``/mnt'' (씨디롬 드라이브, 플로피, 네트웍 공유 등이 대개 마운트되는 디렉토리), 그리고 Squid 를 사용하고 있다면, ``/var/spool/squid'' (Squid 의 캐시 데이터 파일) 만 예외로 빼준다. 일단 필요한 파일을 선택하였다면 만들고 있는 백업 프로파일을 클릭하고 "Files >>" 버튼을 클릭하여 선택된 파일 목록을 백업 프로파일로 옮긴다.

Note: 주의: 자료의 규모가 너무 커서 하나의 테이프에 모두 담을 수 없다면, 여러개의 백업 프로파일을 만들어서 각기 백업할 대상의 일부를 담당하도록 하여야 한다.

실제로 백업을 수행하려면, 드라이브에 테이프를 넣고나서 "File" 메뉴에서 "Mount Tape" 를 선택한다. (또는 테이프같이 생긴 아이콘을 클릭한다) 이렇게 하면 테이프를 "마운트" 하게 된다. (실제로는 테이프 장치가 문자 장치이기 때문에 마운트하는 것이 불가능하다 -- KDat 가 실제로 하는 일은 테이프를 되감고 헤더 정보를 읽으려고 시도하여 만약 읽을 수 있으면 해당되는 테이프 색인을 찾아낸다. 만약, 헤더 정보를 읽을 수 없으면 KDat 는 테이프를 포맷하라고 할 것이다.)

Note: (주의: 만약 드라이브에 테이프가 확실히 들어있는데도 계속해서 KDat 가 테이프가 드라이브에 들어있지 않다고 투덜대면 preference 에 테이프 장치의 이름이 제대로 되어 있는지 확인하여야 한다; 메뉴 바에서 "Edit" 옵션을 클릭하고 "User Preferences" 를 선택하면 된다.)

일단 KDat 가 테이프를 마운트하고 나면 백업을 시작하기에 앞서 이번 백업에서 어느 백업 프로파일을 사용할 것인지를 선택하여야만 한다. 백업을 시작하려면, 원하는 백업 프로파일을 오른쪽 버튼으로 클릭한 뒤 "Backup" 옵션을 클릭해주면 된다. 그러면 KDat 는 당신이 선택한 백업 프로파일에 대한 상세한 내용을 보여주는 대화상자를 보여준다; 여기에서 백업을 시작하려면 "Ok" 버튼을 클릭하면 된다.

백업이 진행되는 동안, KDat 는 다양한 통계 정보 (작업 시간, 백업의 크기, 백업한 비율, 남은 시간의 예상치, 파일의 수, 기록된 바이트 수 등) 와 백업된 파일의 목록을 나타내는 대화상자를 보여줄 것이다. 수 기가 바이트에 달하는 전체 백업은 끝나는데 까지 몇시간이 걸릴 것이다. 만약 필요하다면 백업이 진행되는 중에 언제라도 "Abort" 버튼을 눌러 백업을 중단시킬 수 있다.

일단 백업이 완전히 끝나고 나면, 메뉴 바에서 "Edit" 를 선택한다음 "Unmount Tape" 를 선택하여 테이프의 마운트를 해제하거나 테이프 모양의 아이콘을 클릭하여 테이프를 되감은 뒤 튀어나오게 할 수 있다.