시스템관리자의 쉼터 커피닉스 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

가입없이 누구나 글을 쓸 수 있습니다. 공지사항에 대한 댓글까지도..




BBS >> 설치, 운영 Q&A | 네트웍, 보안 Q&A | 일반 Q&A || 정보마당 | AWS || 자유게시판 | 구인구직 || 공지사항 | 의견제시
백업 시스템은 어떻게 구축하나요??

 
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> 시스템 설치 및 운영
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
kobi



가입: 2003년 9월 4일
올린 글: 28

올리기올려짐: 2003.12.11 목, 10:57 pm    주제: 백업 시스템은 어떻게 구축하나요?? 인용과 함께 답변

일단 백업용 하드는 파티션 잡아 두었구요..
이래저래 한번 서버 뒤업고 나니깐

골치 아프네요..ㅠㅠ

수고스러우시겠지만 답변 해주세요..ㅠㅠ

담에 제가 술한번 거하게 쏴야겠는데요...ㅎㅎ
_________________
모르는게 참 많네여..ㅠㅠ
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
truefeel
카페 관리자


가입: 2003년 7월 24일
올린 글: 1277
위치: 대한민국

올리기올려짐: 2003.12.12 금, 12:54 am    주제: Re: 백업 스크립트 예. 나머지는 스스로 인용과 함께 답변

우선 쉘 스크립트를 작성하실 수 있어야 합니다.
(몰라도 가능하지만 모르면 그만큼 원하는 형태로 백업 받기 어려움)
또한 tar, rsync, cp, date, mysqldump (mysql DB라면), export(오라클이라면), mt, dump(테잎 백업) 등의 명령과
정기적으로 명령을 자동으로 실해시켜주는 cron 에 대해서도 아셔야 합니다.

두 가지 예만 들어들일테니 참고하시고 응용해보세요.
(테스트는 해보지 않고 쓰니 직접 확인해보세요.)

1. /etc 등 주요 설정과 관련된 디렉토리를 백업한다고 할 때

코드:

#!/bin/bash
#
# 파일명 : /root/bin/backup.sh
#
# /etc 전체를 백업디렉토리에 etc-년월일-시간.tar.gz 이름으로 백업한다.

DATE=`date +%Y%m%d-%H`
BACKUP_DIR="/backup/system"

# etc 백업
tar cvf $BACKUP_DIR/etc-$DATE.tar /etc
gzip $BACKUP_DIR/etc-$DATE.tar


중요한 것은 /backup 이나 /backup/system 디렉토리는 모두 퍼미션이 700으로 하셔야 합니다.
그래야 다른 일반 사용자들이 백업해둔 파일에 접근할 수 없는 것이죠.

코드:

# chmod 700 /backup
# chmod 700 /backup/system

# chmod 700 backup.sh
# ./backup.sh (이렇게 했을 때 /backup/system/ 에 백업됐는지 확인하시면 됩니다.)


2. 아래는 rsync를 이용해서 퍼미션과 소유자를 그대로 유지한 상태로 디렉토리를 통채로 복사하는 예입니다.

코드:

#!/bin/bash
#
# 파일명 : /root/bin/backup_dir.sh
#
# /home, /abcd 전체를 /backup/ 아래로 복사한다.

BACKUP_DIR="/backup"
DIR_LIST="/home /abcd"

for i in $DIR_LIST
do
   /usr/bin/rsync -avxH $i $BACKUP_DIR$i
done


코드:

# chmod 700 backup_dir.sh


rsync는 디렉토리안에 파일이 많으면 목록 인식하는데 시간이 걸린다는 것 참고하세요.

뭐 저런식으로 됐다면 crontab 에 넣어주면 백업을 해주겠죠.
아래는 매주 일요일 새벽 2:31과 2:51분에 backup.sh, backup_dir.sh이 실행되도록 하는 예입니다.

# crontab -e

코드:

31 2 * * 0 /root/bin/backup.sh > /dev/null 2>&1
51 2 * * 0 /root/bin/backup_dir.sh > /dev/null 2>&1


지금까지 하나의 예입니다.
모든 것을 다 알려주면 역시 님에게는 전혀 도움이 안되며,
서버 관리를 하시면 스스로 방법을 찾아내고, 문제를 해결하실 수 있어야 합니다.
이번 기회에 쉘 스크립트에 대해 배워보세요.

* 참고글
- [기초] 작업 자동화, cron 설정 http://coffeenix.net/board_view.php?cata_code=0&bd_code=97 (좋은진호)
- Bash를 이용한 쉘 스크립팅 완전 가이드 http://coffeenix.net/go.php?site_code=181&go=/doc/HOWTOs/html/Adv-Bash-Scr-HOWTO/ (번역 차현진)
- 시스템 백업 카테고리 http://coffeenix.net/?cata_code=54
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이전 글 표시:   
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> 시스템 설치 및 운영 시간대: GMT + 9 시간(한국)
페이지 1 중 1

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 있습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB © 2001, 2005 phpBB Group