14.1.2 여러 가지 백업 도구
전통적으로 리눅스는 백업을 위한 다양한 도구를 제공했습니다. 실제로 오픈 소스로 개발된 프로그램부터 상용 제품까지 다양한 백업 솔루션이 존재합니다. 먼저 cp 명령으로 파일을 복사하는 방법이 있습니다. cp 명령의 -a(--archive) 옵션을 사용하면 하위 디렉터리 내용을 함께 복사하고 원본 파일의 소유자와 권한, 시간 정보, 링크를 유지할 수 있습니다.
파일과 디렉터리, 링크 관리가 번거로우면 하나로 묶어서 관리할 수 있습니다. 이렇게 만들어진 자료 사본을 아카이브(archive)라고 합니다. tar는 오랫동안 백업 매체로 사용했던 테이프 아카이브(Tape ARchive)에서 유래된 아카이브 관리 도구입니다. ‘tar [옵션] [파일]’ 형식으로 사용합니다. 파일을 묶을 때 사용하는 옵션은 -c(--create)입니다. 일반적으로 작업 상태를 보여 주는 -v(--verbose)와 아카이브를 지정하는 -f(--file) 옵션을 함께 사용합니다. -f 다음에 생성할 아카이브 파일을 지정하고 이어서 아카이브에 묶을 파일 목록을 나열합니다. ‘tar cvf [아카이브 파일] [압축할 파일 1] [압축할 파일 2] [압축할 파일 3], …’ 형식으로 입력합니다.
백업 도구 실습에 사용할 게이트웨이 장치를 시작하고 원격 접속합니다.
supreme@master:~$ virsh start vmgate supreme@master:~$ ssh administrator@10.200.200.199
퍼팻 코드를 묶어 봅시다. ➊ 먼저 저장할 파일이 위치한 디렉터리로 이동해야 합니다. ➋ tar 명령으로 production 디렉터리를 puppet_production.tar 파일로 묶습니다. ➌ ls 명령으로 생성한 아카이브 파일을 확인할 수 있습니다.
administrator@vmgate:~$ cd code/environments ➊ administrator@vmgate:~/code/environments$ tar cvf puppet_production.tar production ➋ administrator@vmgate:~/code/environments$ ls -al puppet_production.tar ➌ -rw-r--r-- 1 administrator administrator 16793600 Jun 7 17:54 puppet_production.tar
이렇게 해보세요 ≣
tar 명령으로 아카이브를 생성할 때 절대경로로 지정한 디렉터리가 모두 포함됩니다. 예를 들어 다음과 같이 홈 디렉터리에서 code/environments를 대상으로 tar 명령을 실행하면 아카이브에는 code/environments 디렉터리 경로가 포함됩니다. production 디렉터리만 압축하려면 저장할 파일이 위치한 디렉터리로 이동해서 명령을 실행하거나 -C(--directory) 옵션을 사용해야 합니다.
administrator@vmgate:~$ tar cvf puppet_production.tar code/environments