찾기
내용으로 건너뛰기
추적
문서의 이전 판을 선택했습니다!
저장하면 이 자료로 새 판을 만듭니다.
미디어 파일
{{tag>tech linux backup tar cat 우분투}} ======우분투 백업하기 (Linux Backup)====== =====TAR 사용 시스템 전체 백업===== tar(Tape ARchive)는 소규모 네트워크에서 백업 프로그램으로 가장 일반적으로 사용되는 유틸리티이다. 이 유틸리티는 오래 전부터 여러 가지 용도로 사용되어 왔고, 앞으로도 아마 꽤 오랫동안 남아있을 것이다. <del>대부분의 사람이 모르고 있지만,</del> tar는 옛날에 사용되던 자기테이프에 파일들을 옮겨 넣기 위해서 만들어진 것으로 HDD백업용으로 설계된 것이 아니다. 그런 이유로 tar는 증분 백업기능이 미약하다. 백업에 제외할 디렉토리를 정한다. 쓸모없는 디렉토리와, __백업파일 자신__을 꼭 제외시켜주어야 한다. 또한 다른 파티션의 하드를 마운트한 /mnt 등의 디렉토리도 제외시켜야 불필요한 용량증가와 시간을 줄일 수 있다. . /media, /dev 등의 디렉토리도 빼주자. /sys, /dev 는 가상적인 디렉토리이다. 백업이 완료된 후 에러 문구를 볼수가 있는데 대부분의 경우 무시해도 된다. ====백업==== 1. 권한획득, 루트로 이동 su cd / 2.전체 시스템을 백업 <code> tar cvpzf backup.tgz.gz --exclude=/proc --exclude=/lost+found --exclude=/media \ --exclude=/backup.tgz --exclude=/mnt --exclude=/sys / </code> 그러니까 루트 권한으로 바꾸고 나서 최상위 리스트로 올라가서 tar 명령어를 적용하는데 압축 파일이름은 backup.tgz.gz 로 하고 압축시 /proc , /lost+found , /mnt , /sys, /media 는 제외하자는 것이다. 그런 후에 backup.tgz.gz 파일을 dvd로 굽든 랜으로 다른 컴터로 옮기든 하면 된다. <file> sudo su cd / tar -cvpzf backup.tar.gz --exclude=/backup.tar.gz --one-file-system / tar -cvpzf backuphome.tar.gz --one-file-system /home/ </file> ===옵션=== 지적한 옵션으로는, **z** (압축; 백업 자료를 **gzip** 을 이용하여 압축한다), **c** (생성; 새로운 저장 파일을 만든다), **v** (수다; 백업이 되고 있는 파일의 목록을 보여준다), **p** (퍼미션 보존; 파일 보호를 위한 정보는 복구할 수 있도록 "기억해" 둔다) 가 있다. 그 외에도, **f** (파일) 옵션은 그 다음의 인자가 생성할 저장 파일 (또는 장치) 의 이름이라는 것을 나타낸다. 파일 이름에 오늘 날짜를 넣기 위하여 어떻게 했는지 보면, **date** 명령을 두개의 역따옴표로 둘러싸서 만들어내고 있다. 일반적으로 사용되는 이름 규칙은 압축되지 않은 저장 파일에는 **tar** 를 뒤에 붙이고, 압축된 저장파일의 경우에는 **tar.gz** 를 뒤에 붙이는 것이다. ====정리 스크립트==== 10일이 지난 파일들을 삭제한다. 주의해서 사용할 것 <file bash> #!/bin/bash find /backup/ -type f -mtime +10 | sort | xargs rm -f </file> ====복구==== 1. 루트로 이동 cd / 2. 압축을 풀어 복구 tar xvpfz backup.tgz -C / 마지막의 -C / 옵션때문에 백업파일이 루트가 아닌 다른 곳에 저장되어있는 상태라도 상관없다. 백업에서 제외했던 디렉토리는 직접 만들어 주어라 mkdir proc mkdir lost+found mkdir mnt mkdir sys 재부팅을 하면 백업전과 똑같은 상태로 돌아 갈 것이다. =====기존 하드와 똑같게 복사해 놓는 방법===== 시스템을 잠시라도 정지해서는 안되는 중요한 시스템의 경우는 별도의 하드에 기존 하드와 똑같게 복사해 놓는 방법이다. 별도의 하드는 백업시에만 마운트해 사용하고 그 외의 시간에는 umount 하므로 해킹을 당하는 경우도 비교적 안전하다. 이 경우 메인 하드에 이상이 발생하면 두 번째 하드로 케이블 연결만 변경하면 되므로 다운 시간은 5분 이내 일 것이다. 원본 시스템이 깔린 하드 A가 있고 그 시스템을 똑같이 복사할 하드 B가 있다고 하면 하드 B를 하드 A에 케이블로 연결을 해서 아래 명령어를 적용시키면 된다. sudo su cat (하드A) > (하드B) 만약 하드 A 위치가 /dev/hdb이고 하드 B 위치가 /dev/hdc라면 이렇게 되는거죠. (sudo cat ... .. 이런 것으로는 안됨) cat /dev/hdb > /dev/hdc * 하드A의 내용이 하드B에 완전히 모조리 똑같이 백업된다. * 부트영역, 파티션과 시스템 디바이스 관련된 것도 같이 가니까 사용할 컴터 스펙과 HDD자체도 동일해야 한다. * 용량이 더 큰 HDD로 옮겼다면 이전의 작은 용량밖에 사용할 수 없다. [[tech:gparted]]를 사용해서 파티션 복구 및 확장을 한다. 만약 LVM이면 http://blog.mongee.net/6 참조해서 LVM 확장을 해준다. =====데이터만 백업===== 가급적 리눅스와 데이터를 별개의 파티션에 분리하는 것이 좋다. 리눅스는 거의 설정이 바뀌지 않으므로 1주 일에 1회 정도 백업하고 데이터만 매일 백업하는게 낫기 때문이다. 사용하는 명령은 tar가 가장 낫다. 예를들어 /pub 의 내용을 다른 하드에 그대로 복사한다면 아래 명령을 사용하면 된다. 1) 백업 하드를 임의의 디렉토리에 마운트한다. mount /dev/sda1 /mnt 2) /pub 디렉토리의 모든 파일을 백업 하드에 복사한다. cd /pub tar cf - * | ( cd /mnt ; tar xvf - ) 3) 백업하드를 umount 한다. umount /mnt ===== 특정폴더 백업 스크립트===== <code bash> #!/bin/bash # 특정폴더 제외하고 압축 export Today="`date '+%y-%m-%d'`" tar czpf data-$Today.tar.gz \ --exclude=html/data/cache \ --exclude=html/data/media \ html/data </code> =====Mysql의 전체 데이타베이스 백업===== 백업형식 : mysqldump -u root -p --all-databases > /mnt/data/backup/mysql_` date '+%Y%m%d'`.sql; gzip /mnt/data/backup/*.sql 복구형식 : mysql -u root -p < 파일명.sql 원본 데이타베이스명과 동일한 디비가 생성됨 - 기존 테이블 삭제 후 백업된 파일로 복구를 위한 백업 (mysqldump문으로 데이타베이스 백업 시 각각의 create table문 앞에 drop table문을 삽입한 형태가 된다) 기존 테이블을 삭제하고 복구한다는것에 유의
2+1?
이 필드는 비어 있도록 유지하세요:
저장
미리 보기
취소
편집 요약
참고: 이 문서를 편집하면 내용은 다음 라이선스에 따라 배포하는 데 동의하는 것으로 간주합니다:
CC Attribution-Noncommercial-Share Alike 4.0 International
연결문서
리눅스 하드디스크 추가하기
기술
문서 도구
문서 보기
이전 판
연결문서
맨 위로
다크 모드로 보기
☀️
Toggle Menu
기술
너두 고쳐두 됩니다.
사이트 도구
최근 바뀜
미디어 관리자
사이트맵
사용자 도구
등록
로긴
최근 수정된 문서
venv
postgresql
bitvise_ssh_client
putty
[Putty]
screen
허니미
만듦
고위험_산모
the_siren_s_deception
[그웨덴 농장]
wegovy
[운동 루틴 (주 4~5회 권장)]
labioplasty
[실제 사례]
cin
cervical_cancer
semen_analysis
[정자 향상을 위한 방법]
misuse_endixg
misuse_celestoneg2
misuse_celestoneg28
hysterosalpingography
[비정상]