'svn'에 해당되는 글 3건

  1. 2010.08.18 redmine 1.0.0 업그레이드
  2. 2010.02.19 SVN, Commit Log 변경
  3. 2009.12.29 CRON 을 사용한 SVN + REDMINE 백업

redmine 1.0.0 업그레이드

Posted by NUL 리눅스 : 2010. 8. 18. 18:30

1. 백업

  2009/12/29 - [리눅스] - CRON 을 사용한 SVN + REDMINE 백업
  config/database.yml
  config/email.yml 

2. 기존 0.9.2 버전 백업

  redmine -> redmine-0.9.2 로 이름 변경

3. SVN checkout

  svn checkout http://redmine.rubyforge.org/svn/trunk /설치경로/redmine

4. Upgrade

  rake config/initializers/session_store.rb
  config/database.yml 복원
  config/email.yml 복원

5. Database

  rake db:migrate RAILS_ENV=production
  rake db:migrate:upgrade_plugin_migrations RAILS_ENV=production 
  rake db:migrate_plugins RAILS_ENV=production

6. Clean up

  rake tmp:cache:clear
  rake tmp:sessions:clear

  redmine:redmine 권한 설정 files, tmp, log, environment.rb

7. Restart

  servic httpd restart

아무 문제 없이 잘 되는 군요, 순식간에 끝난 수월한 업그레이드 였음 -_-;

  

SVN, Commit Log 변경

Posted by NUL 리눅스 : 2010. 2. 19. 18:30

여러개의프로젝트를 동시에 작업하다보면 Commit 로그를 잘못 입력할때가 있다.

보통 A 프로젝트의 커밋로그를 B 프로젝트에 올린다든지 하는...

기본적으로  SVN의 로그 기록을 바꿀수 없게 되어 있으므로, 이 로그 변경을 위해서는 다음과 같은 작업을 해야 한다.


1. [SVN 저장소 경로]/hooks/pre-revprop-change.tmpl의 파일 이름을 pre-revprop-change 로 변경

2. 실행 가능하도록 권한 변경


아래는 기존의 모든 프로젝트들에 대해 위의 작업을 수행하는 스크립트이다

#!/bin/bash
# SVN pre-revprop-change

cd SVN경로

for repo in *;do
    if [[ -d $repo ]]
    then
          echo Directory : $repo
          if [[ -r $repo/hooks/pre-revprop-change.tmpl ]]
          then 
                mv "$repo/hooks/pre-revprop-change.tmpl" "$repo/hooks/pre-revprop-change"
                echo ............Rename pre-revprop-change
          fi
          if [[ -r $repo/hooks/pre-revprop-change ]]
          then 
                chmod 744 "$repo/hooks/pre-revprop-change"
                echo ........... Change Permission pre-revprop-change
          fi
     fi
done


아래는 SVN 저장소를 생성하고 pre-revprop-change 훅을 세팅하는 스크립트이다.

이미 존재하는 저장소를 입력했다면 그냥 빠져 나온다.

#!/bin/bash

# Create SVN Repo

cd SVN경로

echo 저장소 이름을 입력하세요

read repo

if [[ -d $repo ]]
then
      echo $repo 는 이미 존재하는 저장소입니다.
else
      svnadmin create $repo
      echo ...... $repo 저장소를 생성했습니다.
      mv "$repo/hooks/pre-revprop-change.tmpl" "$repo/hooks/pre-revprop-change"
      chmod 744 "$repo/hooks/pre-revprop-change"
      echo ...... $repo 저장소의 pre-revrepo-change 훅을 생성했습니다.
fi

  

CRON 을 사용한 SVN + REDMINE 백업

Posted by NUL 리눅스 : 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 create sample
             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주일 간격으로 백업해도 무난하네요.

추가로 tar.gz 압축 풀기
tar xvzf filename.tar.gz


  
 «이전 1  다음»