제가 소속되 있는 랩에는 랩에 소속되 있는 분들이 공동으로 사용하시는 서버 한대와 저와 다른분 한분이 개인적으로 운영하는 서버 2대, 총 3대의 서버가 있습니다. 학과가 새건물로 이사하기 전에는 1층이라 그런지 정전으로 인한 서버의 피해가 없었는데요 이번에 새건물 4층으로 옮기면서 툭하면 정전되고, 요번날에는 연구실 몇대의 컴퓨터들이 벼락으로 인한 쇼크로 하드가 나갔습니다. 서버는 다행히도 UPS를 물려놔서 큰 피해는 없었지만 연구실 프로젝트와 관련된 문서를 저장한 컴퓨터가 쇼크로 인해 물리적으로 손상이 되버렸더라고요 -_-; 연구실 서버에는 개인 연구자료나 웹 페이지 및 중요한 정보가 많고 서버에 마운트 되 있는 하드도 많아서 이 기회에 백업을 해 보기로 하였습니다.
위에서도 설명했듯이 현재 제가 가진 환경은 총 3대의 서버를 사용할 수 있고 백업을 해야하는 대상 서버는 한대입니다.(개인 적으로 쓰는 서버들은 어차피 학습용이기 때문에 날아가도 별 피해가 없다는..) 백업은 tar를 이용해서 백업 대상 디렉토리(home 디렉토리가 되겠죠)를 통체로 압축하고 그 파일을 백업 서버에서 다운 받는 형식을 이용하겠습니다. 서버에 여유가 있는 하드가 마운트 되 있다는 가정하에 이 하드가 마운트 되있는 디렉토리를 홈 디렉토리로 사용하는 계정을 하나 생성합니다.
이제 위에서 설정한 홈 디렉토리로 이동해서 아래의 tar 압축 명령을 입력하면 백업이 시작됩니다.
1. MySQL의 백업입니다.MySQL은 mysqldump란 명령어를 가지고 쉽게 백업이 가능 합니다. MySQL의 root 권한으로 접근하여 DB에 있는 모든 데이터베이스를 백업하려면 아래 명령어를 입력하시면 됩니다.
[root@handkstory.net ~]# mysql -u root -p -f -A > 저장할_파일_이름.sql
위 명령어에서 "-f"옵션을 사용한 까닭은 리눅스를 여러번 접하시다보면 아시겠지만 "-f"옵션은 대부분 force 강제로 실행한다는 뜻이 있는데요 저 "-f"옵션 없이 하니 중간에 lock이 걸린 테이블에 의해 백업파일이 짤리더라고요.(아마 텍스트큐브 설치간 자동으로 생성된 테이블에 특정 옵션이 걸린듯 합니다.) 실행이 완료되면 현재 작업 폴더에 위에 설정한 파일이 남게 되는데요 이 파일을 안전한 장소로 옮겨 주시면 백업은 끝납니다. 2. 파일 시스템 백업입니다.※ 순수히 자료의 백업만 다룹니다. 설치된 프로그램 까지 백업해야될 필요성은 별로 못 느껴서 =ㅅ=a;
위에서도 설명했듯이 현재 제가 가진 환경은 총 3대의 서버를 사용할 수 있고 백업을 해야하는 대상 서버는 한대입니다.(개인 적으로 쓰는 서버들은 어차피 학습용이기 때문에 날아가도 별 피해가 없다는..) 백업은 tar를 이용해서 백업 대상 디렉토리(home 디렉토리가 되겠죠)를 통체로 압축하고 그 파일을 백업 서버에서 다운 받는 형식을 이용하겠습니다. 서버에 여유가 있는 하드가 마운트 되 있다는 가정하에 이 하드가 마운트 되있는 디렉토리를 홈 디렉토리로 사용하는 계정을 하나 생성합니다.
[root@sslab ~]# adduser -d [디렉토리_경로] [계정이름]
ex) [root@sslab ~]# adduser -d /home4/backup backup
계정을 생성했으니 패스워드도 입력해줘야 겠죠 :-)ex) [root@sslab ~]# adduser -d /home4/backup backup
[root@sslab ~]# passwd [계정이름]
Changin password for user [계정이름]
New UNIX password: [패스워드]
Retype new UNIX password: [패스워드]
passwd: all authentication tokens updated successfully.
※사용자의 리눅스 환경에 따라 출력 메시지가 다를 수 있습니다.(저는 CentOS 5를 사용하고 있습니다.)Changin password for user [계정이름]
New UNIX password: [패스워드]
Retype new UNIX password: [패스워드]
passwd: all authentication tokens updated successfully.
이제 위에서 설정한 홈 디렉토리로 이동해서 아래의 tar 압축 명령을 입력하면 백업이 시작됩니다.
[root@sslab home4]# tar cvfp [압축_파일_이름] [대상_디렉토리]
ex)[root@handkstory.net home4]# tar cvfp home.tar /home
이렇게 되면 현재 폴더에 [압축_파일_이름]으로 [대상_디렉토리]의 모든 파일을 압축하게 됩니다. 우선 1단계 백업이 끝났습니다. 같은 시스템에 물리적으로 다른 하드에 백업 압축 파일을 생성 했으니까요 리눅스의 부트로더가 날라가더라도 새로 리눅스를 셋팅하고 백업한 하드를 마운트 해서 압축한 파일을 풀어주기만 하면 복구가 됩니다. 하지만 전기적 충격으로 한대의 서버에 마운트가 되있는 상황을 배제할 수는 없겠죠? 이럴때 다른 컴퓨터로 이 압축파일을 옮겨 놓면 더 안전하게 백업을 할 수 있겠죠. 이 파일을 DVD로 구우면 더할나위 없고요 :-) 저는 제 개인서버(handkstory.net)에 위에서 압축한 백업 파일을 저장하기로 했습니다. 터미널 환경에서 wget을 사용하면 정말 쉽게 파일을 옮길수 있습니다. 저는 서버에 ftp를 이용해서 다운을 받았는데요 ftp에서 anonymous 사용자의 접근을 제한할 때의 wget사용법은 아래와 같습니다.ex)[root@handkstory.net home4]# tar cvfp home.tar /home
[root@handkstory.net backup]# wget --ftp-user=[계정_이름] --ftp-password=[패스워드] --no-passive-ftp [ftp 주소]
만약 ftp에서 passive 모드를 사용한다면 "--no-passive-ftp" 옵션을 빼시면 됩니다. 이런식으로 압축된 파일들을 안전한 곳에 보관하게 되면 더 믿을만한 백업이 되겠죠? 백업을 생활화 합시다~!ㅎㅎ
이올린에 북마크하기
이올린에 추천하기




댓글을 달아 주세요
술안취 2009/03/30 10:39 댓글주소 수정/삭제 댓글쓰기
간만에 포스팅 개그 작렬?!
hewerlsj 2009/05/25 11:16 댓글주소 수정/삭제 댓글쓰기
좋은 정보 감사합니다. 담아가겠습니다.
출처는 적었지만 차후 삭제를 원하신다면 제 블로그 댓글에 삭제요청하신다고 답글 달아주시기 바랍니다.
블루디어 2009/11/30 11:09 댓글주소 수정/삭제 댓글쓰기
좋은 정보 감사합니다.
저도 윗분처럼 담아가도 문제가 안된다면 담아가겠습니다.
다시한번 진심으로 감사 드립니다.
우선 퍼가셔도 상관없다는 말을 먼저 전해드리고요 이 아래는 제 개인적인 견해입니다.
블로그는 좋은 글이든 나쁜글이든 본인이 직접 작성한 내용들로 채우는게 좋다고 생각합니다. 저도 예전에는 펌질 블로깅을 많이 했었지만 그런 펌질은 정보의 전반적인 공유에 별로 좋지도 않거니와 네X버와 싸XX드가 만들어낸 우리나라의 기형적인 문화라고 생각합니다.(단적인 예를 들자면 포스팅에 대한 피드백이 여기저기 분산되 있게되면 작성자나 그 포스팅을 보는 사람들이 불편하겠죠?) 개인적인 정보 보관 차원이라면 딜리셔스(http://delicious.com/)나 개인 위키페이지를 사용하시는게 어떨까 하네요 ^^