'fedora'에 해당되는 글 2건

  1. 2009/12/29 CRON 을 사용한 SVN + REDMINE 백업
  2. 2009/12/15 Redmine VPS 서버 구축

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


Redmine VPS 서버 구축

리눅스 2009/12/15 23:45
http://cafe24.com 에서 VPS 를 신청 했습니다. 운영체제는 fedora 11 로 아무것도 없이 기본 OS 설치만 신청

일단 아는게 없으므로 -_-; http://bitnami.org 에서 패키징 된 버전을 설치해 봅니다.
잘 돌긴 하는데... 기본 아파치와 포트가 겹치고,
정확한 OS의 구조를 모르는 상태에서 이런 저런 설정 하려니 오히려 더 불편하더군요...
서비스를 어떻게 등록해야할지도 모르겠고......바로 삭제...?

http://www.redmine.org/wiki/redmine/RedmineInstall 를 참고하여 필요한 rpm, gem 등을 살펴보고 닥치는대로 설치 합니다. (최신 버전으로 도배....)
설치 도중 에러가 발생하면 설치 안된 rpm / gem 등을 설치해보고 그래도 안되면 구글링으로 하나씩 해결해 가면서 설치 했습니다.
참조한 웹페이지들이 너무나 많았고 버전이나 OS의 종류, 설치 패키지 종류 등도 조금씩 달라서 검색 했던 웹페이지들은 기록을 못했고, 많이 참조한 몇몇 웹 페이지만 적어놨습니다.

아래 블로그들은 해당 페이지 외에도 쓸만한 정보들이 많습니다.Ruby on Rails 를 리눅스에 설치하기
Subversion과 Redmine을 사용하여 프로젝트 관리하기
http://inocrazy.com/docs
http://www.redmine.org



아래의 구성품(?)들을 설치했습니다.

# yum install httpd
# yum install mysqld
# yum install php?
# yum install php-gd
# yum install php-mysql
# yum -y install subversion
# yum -y install mod_dav_svn
# yum install ruby ruby-irb ruby-libs ruby-rdoc ruby-mode ruby-ri ruby-doc
# yum install rubygems
# yum install rubygem-rails ruby-mysql
# yum install ruby-devel
# gem update --system
# gem install mocha
# gem install rails --include-dependencies
# yum install mongrel
# gem install passenger
# passenger-install-apache2-module

redmine은 SVN으로 최신 개발 버전을 다운 받아 설치 하였고redmine 설치 자체는 공식 홈페이지에 있는 설명만으로 충분할 정도로 간단합니다.문제는 그걸 제대로 구축 하려니 잘 안되더군요...;

설치 과정을 제대로 기록하지 않아 누락된 것이 많긴 하지만... 몇가지라도 기록 해두려 합니다.

1. 아파치 데몬을 재시작 해야 하는 경우가 있는데
# service httpd restart 를 사용

2. 설정 파일 / rpm 등을 찾아야 할땐
# find / -name 이름? ? # rpm -qa | grep 이름

3. 열려있는 포트 확인 (전 nmap 이 깔려 있었던....)
# nmap -sT -O localhost

4. MySQL root 패스워드 지정?
# mysql> use mysql;
# mysql> update user set password=password('패스워드') where user='root';
# mysql> flush privileges;
# mysql> select host, user, password from user;

5. 이후의 MySQL 사용
# mysql -u root -p

6. SVN 저장소 설치
# htpasswd -c /home/svn/.htpasswd 아이디?
# svnadmin create /home/svn/프로젝트
# chown -R apache.apache /home/svn/프로젝트

7. SVN 설정
/etc/httpd/conf.d/subversion.conf 를 아래와 같이 편집 (자동으로 추가되는 부분도 있슴)

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /svn/프로젝트>
DAV svn
SVNPath /home/svn/프로젝트
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/svn/.htpasswd
Require valid-user
</Location>

무식하게 프로젝트 별로 다 넣어줬습니다 -_-;

8. Passenger 설정
/etc/httpd/conf.d/passenger.conf 를 아래처럼 편집?(자동으로 추가되는 부분도 있슴)? ??LoadModule passenger_module /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib64/ruby/gems/1.8/gems/passenger-2.2.7
PassengerRuby /usr/bin/ruby

<VirtualHost *:80>
ServerName 127.0.0.1
DocumentRoot /opt/redmine/public
RailsBaseURI /
</VirtualHost>

9. 나머지 redmine 관련은 redmine.org의 인스톨 가이드 그대로...

10. SMTP , SendMail 은 쓰지 않는다. (경험상 매우 귀찮고, 소규모기 때문에 그닥 필요성도 못 느낌, 나중에나......)

11. 나머지 어지간한 문제들은 에러 메세지들을 잘 보고 부족한 rpm / gem 등을 설치하거나 그래도 안되면 구글링을 하다 보면 비교적 쉽게 해결 할 수 있다.

12. 저장소 백업 및 복구 (예전 저장소에서 새로 구축한 서버로 이동)
# svnadmin dump 프로젝트> 프로젝트.dump
# svnadmin load 프로젝트?< 프로젝트.dump

13. 설치 완료 후 잘 되는 듯 했으나 첨부 파일 업로드시 에러 발생.
http://www.redmine.org/issues/3334
# chown -R redmine:redmine environment.rb
# chown -R redmine:redmine files log tmp
소유권을 바꿔서 해결했는데.... 많은 삽질 끝에 성공한거라 이게 정말 해결책인지는 미지수....



완성된 Redmine 프로젝트 관리 페이지는 http://project.nul.kr 에 있습니다
저작자 표시 비영리 변경 금지
Trackback 0 : Comment 0

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

Write a comment

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