시스템 백업 이미지 도구 TimeShift를 소개합니다.

오늘은 시스템 백업에 관한 내용입니다.
윈도우를 사용하면서 업데이트를 하면 항상 시스템 백업 이미지를 만들어 두었습니다.
OS를 설치하고는 프로그램 설치하고, 업데이트까지 하면 시간이 참 많이 걸립니다.
다행히 ,windows7 에서는 시스템 이미지 생성 이라는 아주 편리한 도구 있어서 , 
프로그램이 설치된 그대로 시스템이 백업되었죠,Mac OS에서는 Time Machine이라고 한다는군요
리눅스 개인 사용자를 위한 아주  편리한 도구가 나와 주었습니다.
TimeShift 라고 합니다.

우분투배포판이 아닌 경우에 설치하기는 이글을 참고하세요
http://www.teejeetech.in/

일정을 정해서 주기적으로 시스템을 백업할 수도 있고요,
이동식 저장장치등을 지정해서 백업할 수도 있고요,
저장하지 않을 폴더나 내용을 정해진 범위에서 선택할 수도 있습니다.

설치)
sudo add-apt-repository ppa:teejee2008/ppa
sudo apt-get update
sudo apt-get install timeshift

백업)
실행 하시면, 이런 화면이 나옵니다.

우선 Backup Device에서 백업하는 내용을 저장할 저장장치를 선택해 줍니다.
저는 지금 테스트용으로 파티션을 구성해서 12GB 뿐이라서 공간이 부족합니다.
그래서 가장 공간이 남는 /dev/sda5 에 저장하려고 합니다.
저장위치는 어느 저장장치가 되던 /timeshift 로 설정 되어 있습니다.
그리고 리눅스 파일 시스템에만 저장되도록 설정 되어 있습니다.

우선 설정을 살펴본후에, 원하는 대로 설정을 하고 백업합니다.
백업 스케줄을 만들어서 주기적으로 백업을 하려면 여기에서 설정해주세요
이번 한 번 만 하시려거든 모두 해제하시구요.
월별, 주간, 일별, 시간별, 부팅할때마다 등등 여러가지 옵션이 있습니다.

이것은 오래된 백업 파일들을 자동으로 제거하는 설정입니다.
마찬 가지로 월별, 주간별, 일별, 시간별, 부팅횟수별, 일정기간이 지난 파일들 모두제거,
저장공간의 상태에 따라 등등의 옵션이 있습니다.

백업하지 않을  파일들이나, 폴더, 폴더의 내용들을 설정할 수 있고요, 

반대로 포함할 것들로 설정해서 백업할 수도 있습니다.  
이대로 그냥 백업을 하면, 사용자의 개인 자료들은 포함되지 않게 됩니다.
문서, 음악, 사진, 비디오, 다운로드, 등등 함께 백업 해두실 자료혹은, 
폴더들은 별도로 백업해 두시는 게 좋습니다.

설정하다 실수로라도 추가되거나, 제외될 항목들은 옆의 Remove를 눌러서 뺄수있습니다. 

스케줄 설정을 마치셨거나, 이번만 하도록 설정을 마치셨으면
저장 장치를 선택하고, Backup(백업)을 누르면 백업을 시작합니다.

이렇게 백업을 마쳤습니다.

복원)
이렇게 백업된 파일을 불러 오는 방법은 
부팅 USB에 TimeShift를 설치해서 원하는 파티션에 백업하거나
멀티 부팅중 이시면 어느 한 OS에서 TimeShift를 설치한 후에 불러오는 겁니다.
아니면, 사용중이던 OS가 이상이 생겨서 정상적으로 작동하던 때로 되돌리시는 경우도 있겠구요
이렇게 사용목적에 맞게 복원하면 됩니다.

복원하는 과정은요, 백업해둔 파일을 찾아서 Restore(복원)을 누르면

이런 복원 설정 창이 나옵니다.
여기에서 복원할  파티션을 선택해주고, GRUB를 설치할 위치를 선택합니다.
한가지 아쉬운 것은 멀티부팅인 사용자 분들은 별도로 boot-repair를 해주어야 합니다.
복원되는 OS는 GRUB 설치 위치가 MBR에 고정되어 있습니다.
GRUB 위치를 선택 하셨으면 Restore를 누르셔서 복원을 진행합니다.

제거)
백업 파일을 지우는 방법은 , 파일을 선택하고 Delete를 누르면 됩니다.

이렇게 리눅스용 시스템 백업도구중 하나인 TimeShift에 대해서 알아봤습니다.

Tip)
pinguybuilder를 이용해서 사용중인 OS를 그대로 iso 이미지로 만들기
http://bagjunggyu.blogspot.kr/2015/10/pinguybuilder-os-iso.html

Tip)
tar & crontab을 이용해서 백업 하는 방법 요약 메모입니다. 
참고해보세요.

TAR
$ sudo tar -cvpzf backup.tar.gz --exclude=/mnt /
c (만들거나 덮어쓰기 : create or over write) 
v (verbos : 서버가 뭘하는지 알려주는 확장자)
p (preserves permission : 퍼미션을 preserve 하라는 말)
z (compress :  명령 압축, 파일과 폴더를)
f (tar 파일이름을 만들어준다)

file association은 리눅스에서는 아무 의미가 없다
따라서 backup.tar.gz 라고 이름을 붙여준 것은 사용자가 이것이 어떤 파일인지를 쉽게 알기위해 만들어주는 표식이다.

/mnt 로 내보내기 하기위해서 마운트위치를 잡아준다.
/ root를 백업할겁니다.

$ cd /
$ sudo tar -cvpzf wwwbackup.tar.gz --exclude=/var/www/video /var/www 
/var/www/video 의 폴더와 그안의 모든 내용을 wwwbackup.tar.gz라는 이름으로 /var/www 폴더로 백업하라는 명령입니다.

백업파일 풀기
$ sudo tar -xvpzf backup.tar.gz -C /recover
x (extract : 풀기)
v (verbos)
p (preserve permission)
z (uncompress)
f (file name )
C (Change different directory)

$ sudo mkdir recover
$ sudo tar -xvpzf wwwbackup.tar.gz -C /recover

Cron Jobs - 스케줄 테스크
$ sudo crontab -e 
e (edit)

m h dom m dow comm 

m     h    dom                 m            dow          comm 
0-59 0-23  day of month (1-31) month (1-12) day of week (0-6) command

dow : from sunday (0) to saturday (6) 

*  : 상관없이 = 매달, 매주 ,no matter at all

ex) 30 2 * * 2

$ sudo crontab -e
$ 30 2 * * 2 sudo tar -cpzf /backupfolder/minutebackup.tar.gz /var/www/wp-content
cd /backupfolder
$ ls -l