서버에 올려볼까?
이제 이전 글에서 만든 스크립트를 서버에 올려보자.
서버는 아무 서버나 상관없다. 나는 오라클 클라우드에 만들어놨던 인스턴스를 활용해보기로 했다. 만약 서버가 없다면 하루종일 켜놓을 수 있는 어느 컴퓨터나 사용해도 된다. 라즈베리파이 같이 집에 설치해놓은 컴퓨터도 좋다.
git-projects/
├── scripts
│ ├── auto-commit.sh
│ └── schedules
│ └── [project-name-01]
│ ├── 20210201.txt
│ └── past
│ ├── 20201231.txt
│ └── 20210101.txt
└── [project-name-01]
└── (...)
폴더 구조는 위와 같다. 특징은 다음과 같다.
git-projects
라는 임의의 폴더에 깃 프로젝트를 클론해놓는다. (ex. [project-name-01] 같이)scripts
폴더 안에는 만든 스크립트를 놓고, 프로젝트별로 커밋 스케쥴을 넣을schedules
폴더를 만든다.schedules
폴더 안에는 프로젝트별로 폴더를 만들고, 내부엔 날짜를 이름으로 하는 파일(ex. 20210101.txt)를 만든다.- 처리가 완료된 파일을 옮길 수 있도록
past
폴더 프로젝트 폴더마다 만들어 놓는다.
스케쥴 설정은 어떻게 할까?
커밋을 체리픽-리셋해서 새로운 커밋을 만드는 스크립트는 서버에 배치했으니 이제 언제 스크립트를 실행할지 정해야 한다.
구조에서 볼 수 있듯이 프로젝트별로 schedules
폴더를 만들어놨는데 여기에 날짜별로 파일 작성하면 스크립트가 알아서 날짜를 확인하고 실행할 수 있다.
파일 구조는 스크립트에서 유추할 수 있지만 다음과 같이 해놨다.
[commit hash],[new message]
[commit hash],[new message]
(복수 줄 가능...)
콤마(,)를 기준으로 앞에는 미리 만들어놓은 커밋 해쉬, 뒤에는 새롭게 만들 커밋에 대한 메시지를 넣어놨다. 이렇게 해두면 스크립트가 콤마를 기준으로 한 줄씩 쪼갠다.
커밋 해쉬를 이용해 해당 커밋을 체리픽할 때 쓰고 새로운 메시지는 새롭게 만든 커밋에 대한 메시지로 사용한다. 예를 들면 아래와 같이 작성할 수 있다.
91be7ea,'스프링의 기술'에 대한 내용 추가
fcaa073,'8장 스프링이란 무엇인가?'에서 필요 없는 파일 삭제
시간 설정
날짜를 어떻게 설정할지는 파일로 만들어놨지만 하루 중 몇 시에 작동할지는 정하지 않았다. 여기서는 무난하게 crontab
을 사용하기로 한다.
crontab
은 정해진 시간에 반복적으로 리눅스 커맨드를 실행해주는 고마운 프로그램이다. 덕분에 우리는 자동화를 수월하게 할 수 있다. 정할 수 있는 시간은 분, 시, 일, 월, 요일이며 자유롭게 정할 수 있다. 자세한 내용은 링크 참조. 여기선 오후 12시에 실행하도록 해놨다.
## CRONTAB
0 12 * * * sh /home/[username]/git-projects/scripts/auto-commit.sh [project-name-01]
완성!
이제 내가 할 것은 다음과 같다.
- 메인 브랜치로부터 새로운 브랜치를 하나 만든다. 이름은 아무래도 상관 없다.
- 새롭게 만든 브랜치에서 미리 커밋을 만들고 푸쉬한다.
- 만든 커밋 해쉬를 복사한 뒤 서버에 재커밋할 날짜 파일을 만들어 놓는다.
- 재커밋할 날짜에 12시 이후 확인해 보면 완료~
좀 불편하다?
이제까지 만든 스크립트는 잘 돌아가고 있다. 약간 실패도 있었지만 보완해서 지금은 문제 없이 돌아가기에 가끔 약속이 있으면 잘 활용하고 있다.
다만 좀 불편한 점이 있다. 바로 서버에 들어가서 날짜 파일을 만들어야 된다는 점이다. 좀 편하게 웹 브라우저를 통해서 등록할 수 있으면 좋겠다. 시간이 되면 한 번 개선해볼 필요가 있겠다.
그 외 체크해야 할 것
스크립트를 실행할 때 몇 가지 체크해야 할 점이 있다. 지금 생각나는 것은 아래와 같다.
- 스크립트를 배치할 서버에 시간이 KST인가?
git
클라이언트 설치 여부ssh
프로토콜로 리포지터리를 다룬다면 해당 서버의 SSH Key를 등록했는가?- 처음 리포지터리 접근할 때 나오는 핑거프린트 미리 남겨놓기
'실습 > 개인' 카테고리의 다른 글
커밋할 수 없는 날의 '하루 1커밋' _ 02 (0) | 2021.01.21 |
---|---|
커밋할 수 없는 날의 '하루 1커밋' _ 01 (0) | 2021.01.20 |
댓글