180 likes | 462 Views
백업과 복구. SPARCS Wheel seminar. KAIST 진태진 SPARCS dynaman. Introduction. 백업과 복구는 훗날 발생할 수 있는 만약의 사태를 대비하는 방안이다. 항상 정상적으로 시스템이 돌아간다면 백업과 복구는 배울 필요가 없다 . 허나 앞에서 배운 보안도 우주방어가 없듯이 , 시스템 또한 - 데이터 충돌이나 하드웨어 문제 사용자의 부주의 로 인하여 위협을 받게 된다 .
E N D
백업과 복구 SPARCS Wheel seminar KAIST 진태진 SPARCS dynaman
Introduction 백업과 복구는 훗날 발생할 수 있는 만약의 사태를 대비하는 방안이다. • 항상 정상적으로 시스템이 돌아간다면 백업과 복구는 배울 필요가 없다. • 허나 앞에서 배운 보안도 우주방어가 없듯이, 시스템 또한 • -데이터 충돌이나 • 하드웨어 문제 • 사용자의 부주의 • 로 인하여 위협을 받게 된다. • 특히 리눅스는 타 운영체제와 달리 rm이, mv등으로 지워진 파일을 복원하는 것이 거의 불가능하다고 한다.(러닝리눅스) • 그 같은 최악의 경우를 대비하는 방법이 바로 백업이다. J. Jian, Timothy. W. Simpson, Zahed Siddique, “Product Family Design and Platform-Based Product Development: A State-of-Art Review”, Journal of Intelligent Manufacturing, Special Issue on Product Family Design and Platform, 2006, p.p. 8-10
데이터 백업하기 백업의 종류 전체 백업과 누적백업이 있다.. 전체 백업은 말 그대로 시스템 전체를 백업하는 것이며, 누적 백업은 백업을 작은 단계로 나누어 하는 것이다. 예를들어 월 단위로는 시스템 전체를 백업하고, 주 단위로는 전주에 비해 바뀐 내용만, 일 단위로는 전날에 비해 바뀐 내용만 하는 것이다. 이렇게 하면 주,일 백업은 백업할 양이 많지 않아 시간,공간 적으로 모두 효율적이며, 원하는 시점의 자료를 복구하는 것도 쉽다. 예를들면, ~
데이터 백업하기 명령어 백업하기 : tar cvf (백업파일 위치 or device 위치 ) (백업할 디렉토리 혹은 파일) 백업풀기 : tar xvf (백업파일 위치 or device 위치 -> 현재 디렉토리에 백업이 풀린다. *여기다가 용량 압축도 하고 싶다면 gzip 등을 사용하면 된다. *백업을 하는 것은 물리적으로 본체와 떨어져 있어서, 사용 후 분리하고, 내장형이라면 백업 후 umount 하기 바란다. *실제 백업을 해보니, du, df가 유용 하게 사용됨.
데이터 백업하기 가벼운 백업 • 생각해보면, 우린 처음에 운영체제만을 깔았을 때 깔리는 그런 파일들까지 백업할 필요가 없다. 그래서 꼭 필요한 파일만 뽑아보면 다음과 같다. • /etc의 시스템 설정파일 • /user/lib와 /etc/X11의 설정파일 • /user/src/linux에 커널 소스 • /home의 사용자 파일 • 메일 서버라면! /var/spool/mail의 메일 파일 • Partition table ( sfdisk 사용 ) • 간단하게 이 정도와 리눅스 부팅 시디면 왠만한 환경 복구가 가능하다.
데이터 백업하기 CD-R에 백업하기 # mkisofs –T –r –o /tmp/mycd.iso /data # cdrecod –v –eject –fs=4M speed=8 dev=0,0,0 /tmp/mycd.iso 그리고 이미지 파일이 만들기 귀찮다면 파이프를 사용할 수도 있다. Mkisofs –T –r /data | cdrecord –v –eject –fs=4M speed=8 dev=0,0,0 -
데이터 백업하기 하드디스크에 백업하기 • 하드 전체를 백업하려면 다음과 같이 하면 된다. • cd / ; tar –cvf - /data | (cd /backup ; tar –xf -) • 압축을 할 때에는 조심해야한다. • 압축을 하였는데, 중간에 파일이 잘못된다면, 전체 파일을 못 쓰게 되기 때문이다. • 그래서 요즘에는 파일 별로 압축하여 묶거나 하는 프로그램이 나오고 있다고 하니, 관심있는 분은 찾아보시라.
데이터 백업하기 누적 백업 누적백업을 어떻게 할 수 있을까? 따로 백업 프로그램을 사용해야만 하는줄 알았는데 그 방법이 그닥 어렵지 않다. Find/ -mttime -1 \! –type d –print > /tmp/filelist.daily 이렇게 하면 24시간동안 변겨된 모든 파일 내용이 뒤의 파일에 들어간다. 그러면 tar –cv –T /tmp/filelist.daily –f (dev장치 혹은 파일) 이라고 하여 백업하면 된다. -T 옵션이 특정 파일에 있는 목록을 보고 백업 하는것이다.
비상시 대처방법 파티션 설정 백업 & 복구하기 파일은 백업해두었다고 하자. 그런데 고민해서 만든 파티션 설정은 기억나지 않을 때!!! 나중에 시스템을 복구하니 용량이 안 맞을 수도 있다. 그러기 위해서 파티션 설정을 백업해 보면, Sfdisk –d > /partitions.lst 그 설정을 적용하여 포맷하고, 파티션 설정하는 것은 다음 명령어이다. Sfdisk /dev/had < partitions.lst
비상시 대처방법 슈퍼 블록이 깨졌을 때 슈퍼블록이란 파일 시스템 전체의 정보를 저장하는 공간인데, 이 곳이 깨졌을 때는 파일 시스템 자체에 접근이 불가능하게 된다. 하지만 이 곳은 중요한 부분이므로 백업본이 항상 존재한다. 그 위치를 찾아보려면 Dumpe2fs device | more 라고 하면 된단다. 그러면 Blocks pre group : 숫자 가 나오고, (ex ) 8192) 슈퍼 블록 복사본의 위치는 주로 위 숫자의 배수에 1을 더한 곳이다. (이 숫자가 offset) E3fsck –f –b offset device 하면, 파일 시스템이 수리된다.
비상시 대처방법 응급 플로피로 root 따기 모 요새 시대에 맞게 하면 응급 usb로 부팅하기?ㅋㅋ Root암호를 잊어버렸거나, /etc/passwd 파일이 고장났을 때 일단 root권한을 따보자. 응급디스크로 부팅해서 Mount –t ext3 /dev/hda2 /mnt이런식으로 /mnt에 파일시스템을 마운트하고 /mnt/etc/passwd 파일을 편집하자. Root 패스워드를 모두 지우고 다음과 같이 바꾼다. Root::0:0:The root of all evil:/:/bin/bash 이제 하드로 부팅하고 비밂번호 재설정 한다. 물리적 해킹의 힘이다!!!!!!!!!!!!!!!!!! 막기위해선….
Special Edition rsync 서버쪽에서 백업하여 보내기 내 디렉토리를 sparcs의 dynaman의 home으로 보낼때!! rsync -arvu -e ssh ./ dynaman@sparcs.org:/home/dynaman 여기서 디렉토리를 써 줄경우 마지막 부분의 /가 중요한 의미를 가진다. 마지막에 /가 있을 경우는 그 디렉토리 내의 모든 파일을 의미하고 /가 없을 경우는 그 디렉토리 자체를 말하는 것이다.
Special Edition rsync 클라이언트에서 받아보기1 서버쪽 설정하기 • /etc/xinetd.d 디렉토리에 rsync라는 파일을 만들고, • 아래와 같은 내용을 입력한다. • service rsync { • disable = no • socket_type = stream • wait = no user = root • server = /usr/bin/rsync • server_args = --daemon • log_on_failure += USERID • }
Special Edition rsync 클라이언트에서 받아보기2 서버쪽 설정하기 /etc/services파일에 아래와 갈은 내용이 없으면 추가해 준다. rsync 873/tcp # rsync rsync 873/u에 # rsync 그리고 /etc/rc.d/init.d/디렉토리에서 xinetd를 restart 시켜준다. # /etc/rc.d/init.d/xinetd restart
Special Edition rsync 클라이언트에서 받아보기3 • /etc디렉토리에 rsync.conf라는 파일을 생성한다. • #motd = /etc/rsync.motd • # file : message of the day • uid = nobody • gid = nobody • use chroot = no • max connections = 4 • syslog facility = local5 • pid file = /var/run/rsyncd.pid • [host주소] • path = /somewhere/in/remote/host • comment = 홈페이지 주소 • read only = false • uid = apache • gid = apache • auth users = userid • secrets file = /etc/rsyncd.secrets 서버쪽 설정하기
Special Edition rsync 클라이언트에서 받아보기4 서버쪽 설정하기 위 파일과 함께 /etc디렉토리에 rsyncd.secrets파일도 함께 생성한다. name:password /etc/rsyncd.secrets파일의 permission을 rw-------로 해주는 것을 잊지말자. (남이 건들면 안되요.)
Special Edition rsync 클라이언트에서 받아보기5 클라이언트쪽 설정하기 다음 명령을 통해서 서버의 내용을 다운 받을 수 있다. shell> rsync -avz 홈페이지주소 target_dir/ 그리고 아래 명령을 통해서 로컬에서 수정된 파일을 서버에 반영할 수 있다. shell> rsync -avz target_dir/ 홈페이지주소
Q&A Thank you~