차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
tech:linux_system_backup [2016/09/29 20:40] – ↷ 문서 이름이 tech:우분투_백업하기에서 tech:linux_system_backup(으)로 바뀌었습니다 V_Ltech:linux_system_backup [2022/06/22 17:59] (현재) – [TAR 사용 시스템 전체 백업] 162.158.118.163
줄 1: 줄 1:
 {{tag>tech linux backup tar cat 우분투}} {{tag>tech linux backup tar cat 우분투}}
-======우분투 백업하기 (Linux Backup)======+======리눅스 시스템 백업하기 (Linux System Backup)======
  
  
줄 10: 줄 10:
 <del>대부분의 사람이 모르고 있지만,</del> tar는 옛날에 사용되던 자기테이프에 파일들을 옮겨 넣기 위해서 만들어진 것으로 HDD백업용으로 설계된 것이 아니다. 그런 이유로 tar는 증분 백업기능이 미약하다.  <del>대부분의 사람이 모르고 있지만,</del> tar는 옛날에 사용되던 자기테이프에 파일들을 옮겨 넣기 위해서 만들어진 것으로 HDD백업용으로 설계된 것이 아니다. 그런 이유로 tar는 증분 백업기능이 미약하다. 
  
-백업에 제외할 디렉토리를 정한다. 쓸모없는 디렉토리와, __백업파일 자신__을 꼭 제외시켜주어야 한다. 또한 다른 파티션의 하드를 마운트한 /mnt 등의 디렉토리도 제외시켜야 불필요한 용량증가와 시간을 줄일 수 있다. . /media,   /dev 등의 디렉토리도 빼주자. /sys, /dev 는 가상적인 디렉토리이다. 백업이 완료된 후 에러 문구를 볼수가 있는데 대부분의 경우 무시해도 된다. +백업에 제외할 디렉토리를 정한다. 쓸모없는 디렉토리와, __백업파일 자신__을 꼭 제외시켜주어야 한다. 또한 다른 파티션의 하드를 마운트한 /mnt 등의 디렉토리도 제외시켜야 불필요한 용량증가와 시간을 줄일 수 있다. . /media,   /dev 등의 디렉토리도 빼주자. /sys, /dev 는 가상적인 디렉토리이다. 백업이 완료된 후 에러 문구를 볼수가 있는데 대부분의 경우 무시해도 된다...
- +
 ====백업==== ====백업====
  
줄 24: 줄 24:
 --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시)를 이용한다.
  
 ====정리 스크립트==== ====정리 스크립트====
줄 49: 줄 84:
    
 2. 압축을 풀어 복구 2. 압축을 풀어 복구
-    tar xvpfz backup.tgz -C /+    tar xvpfz backup.tar.gz -C /
 마지막의 -C / 옵션때문에 백업파일이 루트가 아닌 다른 곳에 저장되어있는 상태라도 상관없다. 마지막의 -C / 옵션때문에 백업파일이 루트가 아닌 다른 곳에 저장되어있는 상태라도 상관없다.
    
줄 58: 줄 93:
     mkdir sys     mkdir sys
 재부팅을 하면 백업전과 똑같은 상태로 돌아 갈 것이다. 재부팅을 하면 백업전과 똑같은 상태로 돌아 갈 것이다.
- 
  
  
줄 121: 줄 155:
  
 기존 테이블을 삭제하고 복구한다는것에 유의 기존 테이블을 삭제하고 복구한다는것에 유의
 +
 +=====이미지로 백업=====
 +
 +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