잊지 않겠습니다.

Redmine을 Backup하기 위해서는 file 폴더와 mysql db backup이 필요하다. 

일별 backup 을 관리하기 위해서 간단한 powershell script를 작성했다.


#utf8 포멧으로 windows command 변경

& CHCP 65001


$backupRoot = 'H:\redmine_backup\';

$mysqldump = 'C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe'

$fileFolder = 'G:\Redmine\Files\*.*';


$date = (Get-Date).ToString("yyyyMMdd");

$desFolder = $backupRoot + $date;

$attachedFiles = $desFolder + '\files';

$dbBackup = $desFolder + '\redmine.sql';


mkdir $desFolder;

mkdir $attachedFiles;

cp $fileFolder $attachedFiles;

& $mysqldump -u root -pqwer12#$ redmine --default-character=utf8 | Out-File $dbBackup -Encoding UTF8;

# 기본 설정. MySQL/bin 의 위치와 Backup 위치, Redmine의 Attach된 파일 위치를 지정

$backupRoot = 'G:\TracBackup\';

$mysqldump = 'C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqldump.exe'

$fileFolder = 'G:\Redmine\Files\*.*';


#Daily Backup을 날짜별로 하기 위해서 Get-Date 함수 이용

$date = (Get-Date).ToString("yyyyMMdd");

$desFolder = $backupRoot + $date;

$attachedFiles = $desFolder + '\files';

$dbBackup = $desFolder + '\redmine.sql';


#Folder 생성 및 Attach된 파일 copy

mkdir $desFolder;

mkdir $attachedFiles;

cp $fileFolder $attachedFiles;


#MySQL dump 명령어 실행

& $mysqldump -u root -p[MySQL Password] redmine --default-character=utf8 | Out-File $dbBackup -Encoding UTF8;



작성된 script를 Windows Scheduler에 등록하고, 매일 실행하도록 설정하면 완료.

Posted by Y2K
,

출처 : http://www.gpparty.com/viewtopic.php?f=21&t=102&start=0


기초를 중요하게 여겨라
- 딴건 몰라도 기초 지식은 달달 외워라. 대뇌가 아니라 소뇌와 연수에 새겨넣어라.
- 기초부터 탄탄하지 않은 사람은 하드코어 기술을 다룰 자격이 없다. 건방떨다가 툭하면 사고치고 수습 못한다.

다양한 알고리즘을 머리속에 담아라.
- 자동차 운전은 2년 넘으면 그후부터 그게 그거다. 하지만 레이싱은 2년차와 10년차가 크게 차이난다.
- 코딩도 2년 넘으면 그후부터 그게 그거다. 하지만 알고리즘 구사 능력은 2년차와 10년차가 크게 차이난다.
- 현대 모든 기술은 수십년전에 나온 알고리즘들의 실현에 지나지 않는다.
- 다양한 알고리즘을 머리에 담고 있으면 새로운 기술이 나와도 쉽게 적응한다.
- 최신 알고리즘만 공부하지 말고, 퇴역해버린 알고리즘과 그것이 어떠한 새로운 알고리즘으로 교체됐는지도 놓치지 말고 공부하라. 

내 경력을 믿어라
- 경력 많은 프로그래머는 말로 표현하기 어려운 각종 노하우가 근육에 담겨있다.
- (경력상) 젊은 사람이 신기술 배워 오더라도 두려워말라. 경력 많은 프로그래머는 젊은 사람의 신기술 정도는 쉽게 자기것으로 만든다. 그리고 깊은 원론적 혁신을 개발하고 응용해낸다. 이런것은 젊은 사람이 절대 할 수 없다.

코딩의 기초부터 탄탄히 다져라
- 잘 지은 이름 하나 열줄 주석 안부럽다
- 이름과 실제 하는 역할이 다르면 능지처참
- 함수,변수,클래스 이름도 제대로 짓는 습관도 안되어 있으면, 디자인 패턴이네, 리팩토링이네, 객체지향설계를 공부할 자격이 없다. 
- 의외로 이거 잘 못하는 사람들 정말 많으니 주의하라.

툴을 잘 활용하라
- Visual Assist, 각종 측정 도구, 각종 개발툴을 잘 활용하라.
- "나는 그런 툴에 별로 의지 안해도 잘 해요" => 달리 말하면 그런 툴을 제대로 쓰는 법을 모른다는 소리와 같다.
- 툴 잘 활용해서 개발 속도 15% 올려놓고 집에 일찍 가라. 
- 툴 값보다 당신 인건비가 더 비싸다.

알아보기 쉽게 코딩해라
- 소스 한줄 줄인답시고 알아보기 어렵게 하지 마라. 개발은 팀웍이다. 자기혼자 써커스 하지 마라.
- 괜히 재주 부리지 말고 알기 쉽게 짜라.
- 알아보기 어려운 소스는 누구나 쉽게 짠다. 알아보기 쉬운 소스를 짜는 것은 자기 생각 정리가 뛰어남을 의미한다.

- 내가 남의 어떤 소스를 잘 이해했다면 그것은 내 실력이 뛰어나서가 아니라 그 소스를 짠 사람이 뛰어나서이다.

신중하게 생각하고 코딩하라
- 로직을 상세히 구상하고 천천히 꼼꼼하게 소스를 타이핑하라
- 코딩 빠른 프로그래머는 코딩하는 속도보다 디버깅하는 횟수를 최소화한다.
- 덤벙대는 프로그래머는 초반 코딩을 빨리 하지만 디버깅하다가 한달 야근을 못 피한다. 그 사이에 신중한 프로그래머는 같은 목적의 프로그램을 천천히 짠 후, 2주일만에 디버깅을 다 마치고 휴가를 간다.
- 마지막 작은 버그까지 디버깅해 없애는 기간이 총 기간의 90%를 차지한다. 최소한의 디버깅을 하라.
- 자기가 짠 코드는 함수 머리부터 하나 하나 체크해서 잘 돌아가게 만들어졌는지 중복 체크하라.

자기 관리를 잘 하라
- 최상의 컨디션으로 정시에 출근하라.
- 그리고 최악의 컨디션으로 정시에 퇴근하라. 
- 하루 7~8시간 수면은 반드시 챙겨라. 반드시 아침을 먹어라.
- 최상의 컨디션을 유지하지 못하면 야근을 해도 마땅하다.



다른 것보다 "자기 관리를 잘하라", "코딩의 기초부터 탄탄히 다져라" 는 정말 고민해야지 될 문제이다. 이 부분에 대해서는 끊임없이 자신을 돌아보는 자기 성찰적 자세가 없으면 하기 힘든 점이니까.


Posted by Y2K
,

SVN 에서 post-command hook을 활성화시키면된다. 


POSIX 환경에서는 post-commit hook에서 wget를 이용해서 구성하면 되지만, windows에서는 wget이 없기 때문에 다음과 같은 vbs script를 작성한다. 



private const REDMINE_SERVICE_KEY = "<서비스키>" 

 Call HTTPGet("http://<redmine url>/sys/fetch_changesets?key=" & REDMINE_SERVICE_KEY)

 

 Private Function HTTPGet(sUrl)

   Dim oHTTP

   set oHTTP = CreateObject("Microsoft.XMLHTTP")

   oHTTP.open "GET", sUrl, False

   oHTTP.send

   HTTPGet = oHTTP.responseText

End Function



다음 svn hook에서 post-commit.tmpl 파일을 카피해서 post-commit.bat파일로 변경시키고 안의 내용을 다음과 같은 내용으로 변경한다.


cscript "<작성된 vbs 파일의 full 경로>"


작성이 모두 되면 이제 SVN에서 commit가 이루어진 이후에, redmine에서 다시 changeset을 읽어들여 구성하도록 변경된다. 



Posted by Y2K
,