시스템 TAR 백업 실습

사용자들이 직접 작성하는 실전팁!

Moderator: Dry8r3aD

runa99
Posts: 145
Joined: 2014/12/31 Wed 11:28 pm

시스템 TAR 백업 실습

Postby runa99 » 2017/06/05 Mon 2:08 pm

o . to . 100 . 업 !
본 솔루션의 무단 사용 및 배포, 편집을 무제한 허용합니다.
since 2017. 오토백업 ver_1.0

- 우분투 오토백업 솔루션. 리눅스 시스템 백업. otobackup ver_1.0


"오! 토! 백! 업!"
"정의의 이름으로!"
"시스템 꼬임을 용서하지 않겠다!"
"지나친 세이브는 플레이어의 정신 건강에 이롭습니다."
"광기적인 백업은 사용자의 심신 안정에 유익합니다."



0. 즉석에서 사용할 수 있는 백업 명령어

Code: Select all

sudo tar cvpf system_$(date +%m%d).tar --one-file-system --exclude=/proc/* --exclude=/lost+found/* --exclude=/media/* --exclude=/mnt/* --exclude=/sys/* --exclude=/dev/* --exclude=/swapfile --exclude=*/*Trash* --exclude=*/otobackup /


1. 백업이 진행되는 해당 파일은 자동으로 제외되므로 신경 쓸 필요가 없다. 따로 exclude 해주지 않아도 된다. 혹시 home의 제외를 원한다면 --exclude=/home 을 중간에 넣어 주자.

2. 날짜별 백업파일을 모아두는 백업폴더가 있을 경우 이미 저장되어 있는 백업파일을 백업에서 제외하기 위하여 백업폴더의 이름을 otobackup 으로 해 주자. 혹은 --exclude=*/otobackup 에서 otobackup의 이름을 수정해 주자. 전체경로를 사용하는 것보다는 */ 를 이용해 다른 폴더와 이름이 겹치지 않게 하거나 대문자를 넣어주는 것도 괜찮다.
백업 대상 파티션과 백업 폴더의 파티션이 다르다면 신경 쓸 필요가 없다.

3. btrfs 파티션이라면 tar 를 이용한 백업을 포기하자. 하지만 iso 이미지 백업이나 클론질라 백업은 가능하다.

4. 대상 파티션과 다른 파티션의 심볼릭 폴더는 원파일시스템 옵션에 의하여 링크 정보만 저장될 뿐 내부 파일은 저장 되지 않는다. 이 부분은 모든 시스템 백업에 필수적인 요소이다. 이것이 전제 되지 않으면 해당 시스템 os를 사용 중에 백업을 하는 것이 불가능하고 usb live 또는 sub linux 에서 작업을 해야하기 때문이다. /boot/efi 처럼 파티션 심볼릭 링크가 없거나 홈과 루트의 파티션이 동일하다면 상관 없지만 일반적으로 안젛적인 백업을 위해서 --one-file-system 옵션은 시스템 백업시에 필수이다.

5. 대용량 하드디스크를 사용하는 근래 추세를 감안하여 gz 압축을 사용하지 않고 빠르게 묶기 tar만 사용했다. 압축을 원한다면 cvpf file.tar 대신 cvpzf file.tgz 명령을 쓰자.

6. 만들어지는 백업파일은 backup_0508.tar과 같이 영문자 뒤에 오늘 날짜가 자동으로 붙어서 생성된다.

7. 시간과 용량, 연산의 절약을 위하여, 만일 시스템이 우분투 17.04 이상 버젼일 경우 스왑파일을 자동으로 백업에서 제외하도록 하였다. 다른 벼젼은 신경 쓸 필요가 없다. 17.04 이상 버젼 스왑파일의 복구에 (메모리 4기가가 장착된 우분투 17.04 시스템에서 만들어지는 스왑파일 크기 기준인) 기본용량 1.8기가로 생성되도록 적용되어 있는데, 확인을 위해 /swapfile 의 용량을 미리 확인해 보자.

8. 휴지통을 백업하지 않는다. 2개 이상의 리눅스를 사용하실 경우 생성되는 '.Trash-1000' 폴더도 포함하기 위해 --exclude=*/*Trash* 하였다.

9. 개인폴더의 용량이 많을 경우 시스템백업과는 별도로 따로 백업하는 것을 추천한다.
--exclude=$HOME/문서/* --exclude=$HOME/사진/* --exclude=$HOME/음악/* --exclude=$HOME/비디오/*
옵션을 추가해 주면 된다.
개인폴더의 백업은 ~$ rsync -avz --delete ~/문서 /백업경로 를 추천한다.

10. 홈폴더의 파티션이 루트와 다를 경우 홈폴더는 백업이 함께 되지 않는다. 다음과 같이 따로 백업해야 한다. 9번의 적용이 가능하다. 또한 동일 파티션일 경우에도 따로 백업이 가능하다.
tar cvpf home_$(date +%m%d).tar --one-file-system --exclude=*/*Trash* --exclude=*/otobackup /home

11. 시스템을 사용 중에도 실시간으로 복구가 가능하다. (갓리눅스!)
sudo tar xvpf system.tar -C /
sudo tar xvpf home.tar -C /


12. 경로가 모두 저장되므로 루트백업 파일과 마찬가지로 홈백업 파일을 푸는 경로는 최상위 / 이다. 클린복구시에는 rm -rf 를 사용하자. 가능은 하지만 포멧할 경우 UUID가 비뀌어 복잡해진다. grub.cfg 와 fstab 만 수정하면 되긴 하지만 여기선 건너 띄기로 한다. 아무튼 서브 리눅스 또는 USB 라이브를 이용할 경우에는 마운트 된 파티션 위치를 확인하여 적용하면 된다. sudo tar xvpf bakcup.tar -C /경로

13. 실시간 복구시 덮어쓰는 과정과 재부팅 직후에 에러창이 몇번 뜰 수가 있으나 문제 없음이다. (No problem!) 만일 두번째 재부팅 이후에도 에러 메시지 발생시에는 다음과 같이 입력해 주자.
~$ sudo rm /var/crash/*

14. 스왑파일 생성
17.04 이후 버젼에 설치되는 스왑파일을 백업시 제외하였다. 실시간 복구시에는 기존 파일이 남아있으므로 상관없으나 rm -rf * 로 클린복구 하였을 경우에는 부팅후에 다음의 명령을 통해 스왑파일을 재생성 할 수 있다. 근데 사실 램이 4기가에 간단한 오피스 작업과 웹서핑 정도만 하는 유저라면 스왑이 없어도 문제가 없긴 하다. (2년째 non-swap 사용 중)

Code: Select all

sudo dd if=/dev/zero of=/swapfile bs=1000000 count=1800   (스왑파일 크기 변경 = count = 1800 = 1.8기가)
sudo mkswap -v1 /swapfile
sudo chmod 0600 /swapfile
sudo swapon /swapfile
sudo sysctl vm.swappiness=10   (ssd 이용자는 10 대신 1 을 입력하면 된다.)
sudo sysctl vm.vfs_cache_pressure=80


15. 기존의 시스템에서 이미 스왑파일의 자동실행이 적용되어 있으므로 스왑파일을 재생성 해주는 것만으로 복구 완료다. free -m 명령으로 확인할 수 있다. 그래도 심심하니까 어떻게 재부팅 시 스왑이 항상 적용되어 있는지 확인해 보자. /etc/fstab 을 열어보면 다음 구문을 확인할 수 있을 것이다.
/swapfile none swap sw 0 0

16. 사실 가장 간편한 시스템 백업 방법은 디스크를 통한 iso 이미지 백업이다. 다만 파티션 전체 크기를 백업하므로 용량과 시간이 많이 소요 된다. 이외에 timeshift 라는 툴이 한글화가 되어 있는데 초보도 이용 가능한 간편하고 직관적인 인터페이스의 시스템 백업툴이다.

17. 개인적으로 애용하는 백업 방법은 tar 를 이용한 백업과 함께 클론질라(Clonezilla)가 있다. MS 윈도우즈의 백업이 가능한 강력한 오픈소스 백업톨이다. 다만 번호와 크기를 포함한 무조건 동일한 파티션에서의 복구를 전제로 이용하는 것이 좋다. 포멧을 하여 UUID가 달라진 것은 상관없다. 파일시스템과 UUID까지 그냥 덮어쓴다. 설치 파일은 iso 파일이 말고 zip 파일을 본인의 PC에 맞게 32비트와 64비트 중에서 다운받아 주자. usb 에 풀어 놓은 후 utils/linux 경로에서 sudo bash makeboot.sh /dev/sdb1 의 명령을 입력해 주어야 한다.

클론질라 사용시에는 특별한 옵션을 신경쓸 필요가 전혀 없다. 순서를 바꿀 필요 없이 엔터키만 연속해서 눌러 주자. 파티션을 선택하는 메뉴가 나오면 백업파일을 저장할 파티션 경로를 선택한 후 (한글폴더명은 깨져서 나온다.) Tab, Tab, Done 해 주자. parition save 을 선택해 준다. 이후 백업파일의 이름을 입력해 주자. 그리고 다시 파티션을 선택하는 메뉴가 나오면, 백업 대상 파티션을 골라 스페이스바를 눌러 * 체크 해준 후에 엔터를 눌러주자. 이후 계속 해서 진행하면 백업이 시작된다. (이후 fsck 사용과 백업 이미지 체크, 이미지 암호화를 묻는데 중간의 백업 이미지 체크를 하지 않음으로 변경해서 시간을 단축할 수도 있다.)

복구시에도 같은 순서를 반복한다. 백업파일이 위치한 파티션 경로를 선택한다. partition restore 를 선택해 준다. 그리고 복구할 파티션을 스페이스바로 체크 후에 엔터. 그대로 진행하면 복구가 시작된다.

페이스북에서 한글화 소식이 있었는데 감감 무소식이다. 번역 분량이 많다고 하던데 드러나는 메뉴 같은 부분 한글화만이라도 적용할 수 있다면 좋을 것 같다. 클론질라 팀에서 받아주지 않으려나?


== 종강 ==




Q. 질문 있습니다.
클론질라 다운로드에서 debian stable 버젼과 ubuntu alt 버젼이 있던데 차이점을 아시는 분이 혹시 계시다면 댓글을 부탁드립니다.
우분투에서 데비안 stable 버젼을 써도 되는지 헷갈려서요.
그리고 재미있는 점은 클론질라도 리눅스 커널을 이용하나봐요. Alt PrintScreen + R E I S U B 조합의 커널 강제 시스템 다운 명령이 클론질라에서 먹히네요.

wewoori
Posts: 193
Joined: 2008/12/30 Tue 11:29 pm

Re: 시스템 TAR 백업 실습

Postby wewoori » 2017/06/30 Fri 10:51 pm

물론 같은 방법이기는 합니다...

tar cvfz my-backup-$(date +%Y%m%d_%s%N).tgz $HOME -X $HOME/exclude.files

즉 따로 제외 항목을 적어주는 것이 아니라 파일로 만들어주는 방법입니다.. 즉 exclude.files
라는 파일에 제외할 항목 즉 확장자나 디렉토리 이름을 적어주면 됩니다...



*.mp3
*.avi
영선씨

영선씨는 당연히 디렉토리일것이구요... 암튼 이런식으로 저 파일안에 정의을 해주면 됩니다...

또 한가지 저같은 경우 두번 실행을 할 경우을 대비을 해서 파일 이름의 난수을 집어넣었습니다..
간단하게 저렇게 해서 alias로 정의을 해주시면 되실듯합니다..

또 한가지... 저걸로 끝이 아닌 부분 백업에 대한 것도 생각을 해야겠죠...find 명령어와 tar의 조합
으로 하면 간단하게 해결될 문제일듯합니다.. 그렇게 어렵지않아 보입니다...

어짜피 저것은 전체 백업의 개념일것이고 부분 백업은 반드시 필요할듯합니다..
10년째 리눅스 울트라캡송 초초보...어쩌라고..난 그냥 즐기고 달릴뿐인데...

Return to “팁 게시판”

Who is online

Users browsing this forum: No registered users and 1 guest