'2009/12'에 해당되는 글 6건

  1. 2009/12/29 CRON 을 사용한 SVN + REDMINE 백업
  2. 2009/12/16 iptables 를 사용한 방화벽
  3. 2009/12/15 Redmine VPS 서버 구축
  4. 2009/12/15 롤러코스터 원년멤버 교체 왜?
  5. 2009/12/14 VPS (Virtual Private Server) 가상 서버 호스팅 신청
  6. 2009/12/10 BitNami Redmine

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


iptables 를 사용한 방화벽

리눅스 2009/12/16 18:00
2009/12/15 - [리눅스] - Redmine VPS 서버 구축
에 이 방화벽을 세팅해봤습니다.


참고 사이트

Flash Cafe - 인터넷 서버 학습


iptables 기본 명령

1. 상태보기
   # iptables -L -v

2. 저장
   # service iptables save
   # iptables-save > XXXX.XXX

3. 재시작
   # service iptables restart


iptables 세팅용 스크립트

배치 파일은 chmod 700 으로
HTTP / SSH / FTP 를 제외한 모두 막기를 기본 개념으로 합니다.
SVN은 HTTP를 쓰고 있는 상황이므로 별도 설정 없음.


#!/bin/sh

/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z

# Loopback address
LOOP=127.0.0.1

# Prevent external packets from using loopback addr
/sbin/iptables -A INPUT -i eth0 -s $LOOP -j DROP
/sbin/iptables -A FORWARD -i eth0 -s $LOOP -j DROP
/sbin/iptables -A INPUT -i eth0 -d $LOOP -j DROP
/sbin/iptables -A FORWARD -i eth0 -d $LOOP -j DROP

# Invalid Drop
/sbin/iptables -A INPUT  -m state --state INVALID -j DROP  
/sbin/iptables -A OUTPUT -m state --state INVALID -j DROP

# ssh
/sbin/iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# ssh Specific IP Only
#/sbin/iptables -A INPUT -p tcp -s [IP Address] --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

# httpd
/sbin/iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# imap
#/sbin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT

# mysqld
/sbin/iptables -A INPUT -p tcp --dport 3306 -j DROP

# ftpd
/sbin/iptables -A INPUT -p tcp --dport 21 -j ACCEPT

# ftp-data
/sbin/iptables -A INPUT -p tcp --dport 20 -j ACCEPT

# Reject All
/sbin/iptables -A INPUT -p tcp --dport 1:65535 -j DROP
/sbin/iptables -A INPUT -p icmp --icmp-type echo-request -j DROP


추가


/etc/sysconfig/iptables에 설정 내용을 저장하더라도 리부팅 시에 적용이 안되고 설정한 것들이 날라가는 경우가 있음

원인은 모르겠으나 -_-;

/etc/rc.d/rc.local 에서 스크립트를 실행하는 것으로 해결을 봄



저작자 표시 비영리 변경 금지
Trackback 0 : Comment 0

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

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


롤러코스터 원년멤버 교체 왜?

미디어 2009/12/15 08:30
우연히 눈앞을 스쳐간 헤드라인...



리드 싱어가 솔로 앨범을 내고 5집 Triangle 이후로 잠잠하기에...  

그룹 해체는 아니한다고 했었는데 갑자기 이게 왠 말인가.... 하고 서둘러 클릭질을 했는데...





















http://media.daum.net/entertain/view.html?cateid=1032&newsid=20091214184905749&p=newsen

듣보잡 TV 방송.... 아니 케이블 TV...

이런 프로도 있었구나...



20대 여성....;

...

이런 듣보잡 방송이 낚시를...

롤러코스터 앨범 좀 내라 ㅠㅠ
저작자 표시 비영리 변경 금지
Trackback 0 : Comment 0

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

Write a comment


VPS (Virtual Private Server) 가상 서버 호스팅 신청

리눅스 2009/12/14 21:53

2009/11/13 - [PROG.] - 무료 호스팅을 신청해서 SVN(Subversion) + XE(XpressEngine) + 이슈트래커 사용하기 로 이리 저리 써보다가...

2009/12/10 - [공개툴] - BitNami Redmine 를 발견하고 갈아타기로 결정...


문제는 Redmine 이 Ruby on Rails 기반이고 SVN을 서비스 하느곳은 국내엔 거의 없는지라 방법은

1. 서버 호스팅을 하거나
2. ffhosting.net 에 SVN + Ruby on Rail 을 신청하거나

하는 방법 뿐이다.


1번은 금액이 부담되고 2번은 가능하긴 할텐데 VPS도 가격이 저렴하기에 삽질을 통해 공부도 할겸 VPS를 신청했다.


VPS (Virtual Private Server)란...

이런 류의 정보는 위키가 거짓말을 하지는 않기 때문에 위키를 인용한다.
간단히 요약하면 서버안에 여러개의 가상의 서버들을 동작 시켜서 마치 독립된 서버처럼 구동시키는 기술이다.

따라서 저렴한 가격에 ROOT 권한으로 마음껏 서버를 구축할 수 있고, 반대로 그 성능은 어떻게 서비스 하느냐에 달라지기는 
하지만 큰 기대는 안하는 것이 좋다.

내 경우엔 몇가지 작은 프로젝트 관리를 위해 사용하는 것이므로 서버가 막나가지만 않는다면야 대단히 메리트가 있다.
혹은 서버를 공부하는데도 매우 유용해 보인다.


cafe24.com 에 일단 1달을 신청했는데 (알아본바로는 2번째로 저렴 -_-;) 쓸만하다면 연장할 생각이다.


더불어 블로그는 blog.nul.krnul.krwww.nul.kr 로 포워딩하고 프로젝트 페이지는 project.nul.kr 로 구성했다.
이는 별다른 세팅 없이 http://www.dnsever.com를 이용하였다.


이미 대강의 사이트를 구축하였고, 시간나는데로 그간의 삽질기를 정리할 계획이다.

그런데... 어떻게 구축했는지 잘 기억이 안난다 ㄷㄷㄷ;

저작자 표시 비영리 변경 금지
Trackback 0 : Comment 0

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

Write a comment


BitNami Redmine

공개툴 2009/12/10 19:00

http://www.redmine.org 프로젝트(소스) 관리 툴
http://bitnami.org Open Source Software Package

BitNami Redmine 이란 한마디로 Redmine이란 소스 관리 툴을 BitNami 에서 패키징 해서 한큐에 설치할수 있게 만든 것이다.
(눈물난다. 여태 이걸 볼랐다니 ㅠㅠ)
기존의 Ubuntu 9.04 Server에 설치해봤더니 대강 되는 듯...

nForge, Trac, XE Issue Tracker 다 지워 버리고 이걸로 가야 할 것 같다. 간단하니까....;
nForge는 안정화 되기전까진... 현재는 사용이 너무 괴로움....;
Trac는 설정이 귀찮다...;
Redmine이 기본 설치만으로도 적당히 필요한게 다 들어가 있고 유아이도 깔끔하다.
Mantis는 유아이가 그닥 멋지지 않아서.... - 그게 뭔 상관일까 싶지만...

가상 서버 호스팅(VPS : Virtual Private Server)을 한달 신청했는데,
설치 되는대로 이리 저리 해보고 쓸만하다면 쭉 사용해 보려고 한다.
저작자 표시 비영리 변경 금지
Trackback 0 : Comment 0

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

Write a comment

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