'backup'에 해당되는 글 2건

  1. 2009/12/29 CRON 을 사용한 SVN + REDMINE 백업
  2. 2009/11/13 웹 계정에서 MySQL, WWW 데이터 백업하기

CRON 을 사용한 SVN + REDMINE 백업

리눅스 2009/12/29 19:00


2009/12/15 - [리눅스] - Redmine VPS 서버 구축
에 사용할 자동 백업을 세팅하였습니다.

cron을 사용하려면 계정별 세팅을 하거나 crontab을 씁니다.

제 경우는 /var/spool/cron 에 계정별 설정 파일들이 있더군요 -> 그냥 편집
해당 시간에 명령 혹은 스크립트를 실행 해줍니다. 매우 간단하죠


cron 스크립트는 다음과 같습니다.

토요일 6시 정각에 백업 스크립트를 실행 합니다.

#분 시 일 월 요일(월=1 화=2 ... 일=7)
0 6 * * 6 /백업경로/bkscript.sh

혹시 cron이 동작 안할까봐... #crond restart 합니다.



백업 스크립트는 다음과 같습니다.

1. Redmine DB 백업
2. Redmine 첨부 파일 미러(?) 구동 - 이건 백업의 의미가 좀 약한듯.... 나중에 보완...
3. 모든 SVN Repository 백업
4. 3 개월 경과한 백업 파일 삭제
5. 백업파일은 gzip 사용
6. 복구 방법은 잊어먹을까바 적어두기

#!/bin/sh

# Redmine DB
mysqldump -uroot -p암호  redmine | gzip > /백업경로/redmine/redmine_`date +%y_%m_%d`.gz

# Redmine Files
rsync -avz /레드마인경로/files /백업경로

# SVN Repository
cd /SVN경로
for repo in *;do
  if [[ -d $repo ]];then
    svnadmin dump "/SVN경로/$repo" | gzip > "/백업경로/svn/$repo"_`date +%y%m%d`.svn.gz
  fi
done

# Delete Old File (3 Month)
find /백업경로/svn -name *.svn.gz -mtime +90 -delete
find /백업경로/redmine -name *.gz -mtime +90 -delete

# Restore : mysql -uroot -p DB NAME < FILE NAME
# Unzip : gunzip sample.svn.gz
# Restore : svnadmin load sample --force-uuid < sample.dump
# 특정 리비전 덤프 : svnadmin dump 이름 -r 리비전번호 --incremental > 덤프이름
# 범위 리비전 덤프 : svnadmin dump 이름 -r 리비전번호:리비전번호 --incremental > 덤프이름
# 최근 리비전 덤프 : svnadmin dump 이름 -r Head --incremental > 덤프이름



이제 매주 토요일 6시에 /백업경로/svn, /백업경로/redmine, /백업경로/files 에 각각 데이터가 백업됩니다.
회사 업무도 아닌 개인적인 코드들이라 1주일 간격으로 백업해도 무난하네요.
저작자 표시 비영리 변경 금지
Trackback 1 : Comment 0

Trackback Address :: http://blog.nul.kr/trackback/246 관련글 쓰기

  1. Tracked from 좀더 나은 나를 위하여 2012/01/27 17:27 DELETE

    Subject: redmine 정기적(주기적)으로 백업하기

    솔찍히 조금만 구글링을 하면 보다더 자세히 설명해주고 있는곳이 많지만 제가 필요할때 마다 참조하려고 개인적정리입니다. (즉 대충... 자세한 설명은 생략) 1. redmine DB 백업 mysqldump -uroot -p..

Write a comment


웹 계정에서 MySQL, WWW 데이터 백업하기

리눅스 2009/11/13 22:19

1. WWW 데이터 백업

귀찮으니 www 폴더를 통채로 빽업하자
SSH 로 접속
www 위의 위치로 이동(보통 cd ~ 하면 될 것이다. ls명령으로 확인)

다음과 같이 입력하면, bkwww_날짜_시간.tgz로 백업 된다.
tar cvfpz bkwww_`date +%Y%m%d_%H%M`. tgz www


2. MYSQL 백업

다음과 같이 입력하면, bksql_날짜_시간.sql으로 백업 된다.
mysql dump > bksql_`date +%Y%m%d_%H%M`.sql


3. 쉘에 익숙하지 않다면 스크립트를 만들어 두면 쉽다.

vi bkwww 를 하면 bkwww파일을 편집(존재하지 않는다면 생성)한다.
vi의 편집화면이 나타나면 다음과 같이 만든다. 위와 똑같은걸 단지 파일로 저장할 뿐이다.

#!/bin/sh
tar cvfpz bkwww_`date +%Y%m%d_%H%M`. tgz www

MYSQL 백업도 마찬가지로 vi bksql 를 하면 bksql파일을 편집(존재하지 않는다면 생성)한다.
vi의 편집화면이 나타나면 다음과 같이 만든다.

#!/bin/sh
mysql dump > bksql_`date +%Y%m%d_%H%M`.sql

이제 생성(혹은 편집)한 파일이 실행 가능하도록 권한을 설정해야 한다.
아래와 같이 입력한다.

chmod u+x bkwww
chmod u+x bksql

이제 스크립트가 준비되었으니 백업하기위해선 단지 이것을실행시켜주기만 하면 된다.
아래와 같이 한다. (현재 디렉토리의 파일을 실행한다는 의미로 ./를 붙인다)

WWW 데이터 백업 -> ./bkwww
MYSQL 백업 -> ./bksql

저작자 표시 비영리 변경 금지
tags : backup, mysql, shell, 백업,
Trackback 0 : Comment 0

Trackback Address :: http://blog.nul.kr/trackback/236 관련글 쓰기

Write a comment

태그 앞에 붙여 넣습니다. -->