개요
이전 글에서, opengrok 설치하는 내용을 포스팅 하였다.
2021.03.18 - [IT/IT 잡지식] - Opengrok 설치 하기
이 번 글에서는 opengrok 을 crontab 을 이용하여, 매일 자동으로 소스를 업데이트 하고, indexing 하는 내용을 포스팅 해보고자 한다.
CRONTAB 이란?
소프트웨어 유틸리티 cron은 유닉스 계열 컴퓨터 운영 체제의 시간 기반 잡 스케줄러이다. 소프트웨어 환경을 설정하고 관리하는 사람들은 작업을 고정된 시간, 날짜, 간격에 주기적으로 실행할 수 있도록 스케줄링하기 위해 cron을 사용한다.
출처 : 위키백과
즉, 자동으로 주기적으로 실행하게 해주는 스케쥴러다! 라고 보면 된다.
여러가지 GIT 을 한번에 PULL
이 서버의 Opengrok 서버의 폴더 구성은 아래와 같다. repo 를 이용하여 묶여져 있지 않고, app 폴더 하위에 각기 다른 A / B / C / D 의 App 이 독립된 Git Repository를 가진다.
소스를 전체를 git pull 하기 위해서 app.A 폴더가서, git pull / app.B 폴더가서, git pull.....등의 반복전인 작업이 필요하게 된다. 이를 손쉽게 하는 방법에 대해서 알리고자 한다.
├── app
├── app.A (독립 Git)
├── app.B (독립 Git)
├── app.C (독립 Git)
├── app.D (독립 Git)
ls | xargs -I{} -P10 git -C {} pull
해당 명령을 APP 폴더 에서 입력하면, APP 폴더 하위를 돌면서 git pull 을 수행한다.
repo 가 없는 환경에서 유용하게 쓰일 수 있다.
CRONTAB Shell 파일
Crontab 을 수행하기 위해서는 스크립트를 먼저 sh 파일로 작성해야 한다. sh 파일의 경로는 /DATA/opengrok/sync.sh 으로 한뒤, 아래와 같이 스크립트를 작성하자.
#!/bin/bash
function print_msg_with_time
{
msg=$1
echo "$msg - [`date`]"
}
print_msg_with_time "Start Source Sync (`date`)"
# Source Sync
cd /DATA/opengrok/src/app
ls | xargs -I{} -P10 git -C {} pull
# Source Indexing
print_msg_with_time "Start OpenGrok indexing (`date`)"
java -Djava.util.logging.config.file=/DATA/opengrok/etc/logging.properties -jar /DATA/opengrok/dist/lib/opengrok.jar -c /usr/local/bin/ctags -s /DATA/opengrok/src -d /DATA/opengrok/data -H -P -S -G -W /DATA/opengrok/etc/configuration.xml -U http://localhost:8080/source
print_msg_with_time "End OpenGrok indexing (`date`)"
function print_msg_with_time 함수는 메시지를 출력하는 것을 뜻하며, crontab이 주기적으로 수행되는 작업 이다 보니, 시간에 관련된 내용이 추가되면 좋을거 같아 'date' 변수를 입력하였다.
유의해야 할 사항은 crontab에서는 상대경로를 지정하지 못한다. 소스가 있는 곳의 전체 경로를 지정해 주고, 위에서 설명한 하위 Repository git pull 하위 명령을 수행한다.
git pull 이 끝난뒤, indexing 명령으로 소스를 업데이트 한다.
Crontab 등록
이제 해당 스크립트를 주기적으로 수행하기 위해서 Crontab 을 등록하는 절차이다.
아래 명령어로, Crontab을 edit 모드로 연다.
$ crontab -e
마지막 줄에 아래를 추가하자.
00 20 * * * /DATA/opengrok/sync.sh
매일 오후 8시 (20시)에 해당 shell 파일을 수행한다.
맺으며
자동화는 항상 업무 능률을 향상시키는데 엄청난 도움을 준다. 업무 자동화를 위해서 crontab 을 사용하자!
'IT > IT 잡지식' 카테고리의 다른 글
네이버 클라우드 서버 무료로 이용하기 - Micro Server (7) | 2021.10.02 |
---|---|
invalid new-expression of abstract class type error 해결 하기 (2) | 2021.07.27 |
Opengrok 설치 하기 (0) | 2021.03.18 |
Repo Init 에러 해결 하기 (4) | 2021.01.14 |
네이버 웨일 광고 삭제 (0) | 2021.01.13 |
댓글