양쪽 이전 판이전 판다음 판 | 이전 판 |
tech:linux_system_backup [2016/09/29 20:40] – ↷ 문서 이름이 tech:우분투_백업하기에서 tech:linux_system_backup(으)로 바뀌었습니다 V_L | tech:linux_system_backup [2022/06/22 17:59] (현재) – [TAR 사용 시스템 전체 백업] 162.158.118.163 |
---|
{{tag>tech linux backup tar cat 우분투}} | {{tag>tech linux backup tar cat 우분투}} |
======우분투 백업하기 (Linux Backup)====== | ======리눅스 시스템 백업하기 (Linux System Backup)====== |
| |
| |
<del>대부분의 사람이 모르고 있지만,</del> tar는 옛날에 사용되던 자기테이프에 파일들을 옮겨 넣기 위해서 만들어진 것으로 HDD백업용으로 설계된 것이 아니다. 그런 이유로 tar는 증분 백업기능이 미약하다. | <del>대부분의 사람이 모르고 있지만,</del> tar는 옛날에 사용되던 자기테이프에 파일들을 옮겨 넣기 위해서 만들어진 것으로 HDD백업용으로 설계된 것이 아니다. 그런 이유로 tar는 증분 백업기능이 미약하다. |
| |
백업에 제외할 디렉토리를 정한다. 쓸모없는 디렉토리와, __백업파일 자신__을 꼭 제외시켜주어야 한다. 또한 다른 파티션의 하드를 마운트한 /mnt 등의 디렉토리도 제외시켜야 불필요한 용량증가와 시간을 줄일 수 있다. . /media, /dev 등의 디렉토리도 빼주자. /sys, /dev 는 가상적인 디렉토리이다. 백업이 완료된 후 에러 문구를 볼수가 있는데 대부분의 경우 무시해도 된다. | 백업에 제외할 디렉토리를 정한다. 쓸모없는 디렉토리와, __백업파일 자신__을 꼭 제외시켜주어야 한다. 또한 다른 파티션의 하드를 마운트한 /mnt 등의 디렉토리도 제외시켜야 불필요한 용량증가와 시간을 줄일 수 있다. . /media, /dev 등의 디렉토리도 빼주자. /sys, /dev 는 가상적인 디렉토리이다. 백업이 완료된 후 에러 문구를 볼수가 있는데 대부분의 경우 무시해도 된다.... |
| |
====백업==== | ====백업==== |
| |
--exclude=/backup.tgz --exclude=/mnt --exclude=/sys / | --exclude=/backup.tgz --exclude=/mnt --exclude=/sys / |
</code> | </code> |
| |
| |
| |
| |
그러니까 루트 권한으로 바꾸고 나서 최상위 리스트로 올라가서 tar 명령어를 적용하는데 | 그러니까 루트 권한으로 바꾸고 나서 최상위 리스트로 올라가서 tar 명령어를 적용하는데 |
압축 파일이름은 backup.tgz.gz 로 하고 압축시 /proc , /lost+found , /mnt , /sys, /media 는 제외하자는 것이다. 그런 후에 backup.tgz.gz 파일을 dvd로 굽든 랜으로 다른 컴터로 옮기든 하면 된다. | 압축 파일이름은 backup.tgz.gz 로 하고 압축시 /proc , /lost+found , /mnt , /sys, /media 는 제외하자는 것이다. 그런 후에 backup.tgz.gz 파일을 dvd로 굽든 랜으로 다른 컴터로 옮기든 하면 된다. |
| |
| |
| |
| |
===옵션=== | ===옵션=== |
지적한 옵션으로는, **z** (압축; 백업 자료를 **gzip** 을 이용하여 압축한다), **c** (생성; 새로운 저장 파일을 만든다), **v** (수다; 백업이 되고 있는 파일의 목록을 보여준다), **p** (퍼미션 보존; 파일 보호를 위한 정보는 복구할 수 있도록 "기억해" 둔다) 가 있다. 그 외에도, **f** (파일) 옵션은 그 다음의 인자가 생성할 저장 파일 (또는 장치) 의 이름이라는 것을 나타낸다. 파일 이름에 오늘 날짜를 넣기 위하여 어떻게 했는지 보면, **date** 명령을 두개의 역따옴표로 둘러싸서 만들어내고 있다. 일반적으로 사용되는 이름 규칙은 압축되지 않은 저장 파일에는 **tar** 를 뒤에 붙이고, 압축된 저장파일의 경우에는 **tar.gz** 를 뒤에 붙이는 것이다. | 지정한 옵션으로는, **z** (압축; 백업 자료를 **gzip** 을 이용하여 압축한다), **c** (생성; 새로운 저장 파일을 만든다), **v** (수다; 백업이 되고 있는 파일의 목록을 보여준다), **p** (퍼미션 보존; 파일 보호를 위한 정보는 복구할 수 있도록 "기억해" 둔다) 가 있다. 그 외에도, **f** (파일) 옵션은 그 다음의 인자가 생성할 저장 파일 (또는 장치) 의 이름이라는 것을 나타낸다. 파일 이름에 오늘 날짜를 넣기 위하여 어떻게 했는지 보면, **date** 명령을 두개의 역따옴표로 둘러싸서 만들어내고 있다. 일반적으로 사용되는 이름 규칙은 압축되지 않은 저장 파일에는 **tar** 를 뒤에 붙이고, 압축된 저장파일의 경우에는 **tar.gz** 를 뒤에 붙이는 것이다. |
| |
| ====좀 더 간단한 것==== |
| |
| 홈은 따로 백업하는 것이 낫다. |
| |
| <file> |
| sudo su |
| cd / |
| tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --exclude=/home --one-file-system / |
| tar -cvpzf backuphome.tar.gz --one-file-system /home/ |
| </file> |
| |
| **--one-file-system** 이 옵션은 다른 파일시스템으로 된 폴더는 백업하지 않는다. 예를 들어 /proc, /sys, /mnt, /media, /run & /dev 등 이다. |
| |
| |
| |
| tar -cvpzf /home/backup/backup/backup.tar.gz --exclude=/home --one-file-system / |
| |
| |
| <file bash> |
| #!/bin/bash |
| # 시스템 백업 |
| su |
| cd / |
| export Today="`date '+%y-%m-%d'`" |
| tar cvpzf /home/backup/backup/ssd$Today.tgz.gz \ |
| --exclude=/home \ |
| --one-file-system / |
| </file> |
| |
| 시간이 많이 걸리고, CPU를 많이 소모하므로 접속이 적은 시간 (주로 새벽3-4시)를 이용한다. |
| |
====정리 스크립트==== | ====정리 스크립트==== |
| |
2. 압축을 풀어 복구 | 2. 압축을 풀어 복구 |
tar xvpfz backup.tgz -C / | tar xvpfz backup.tar.gz -C / |
마지막의 -C / 옵션때문에 백업파일이 루트가 아닌 다른 곳에 저장되어있는 상태라도 상관없다. | 마지막의 -C / 옵션때문에 백업파일이 루트가 아닌 다른 곳에 저장되어있는 상태라도 상관없다. |
| |
mkdir sys | mkdir sys |
재부팅을 하면 백업전과 똑같은 상태로 돌아 갈 것이다. | 재부팅을 하면 백업전과 똑같은 상태로 돌아 갈 것이다. |
| |
| |
| |
| |
기존 테이블을 삭제하고 복구한다는것에 유의 | 기존 테이블을 삭제하고 복구한다는것에 유의 |
| |
| =====이미지로 백업===== |
| |
| https://superuser.com/questions/410940/how-to-create-vhd-disk-image-from-a-linux-live-system |
| |
| |
| https://askubuntu.com/questions/1028604/bash-script-to-backkup-clone-ubuntu-to-another-partition/1028605#1028605 |
| |