Jenkins 빌드 스케쥴 설정하기 :: Software Development
젠킨스는 빌드 스케쥴을 설정할 때 cron syntax를 따른다.
각 라인은 아래와 같이 5개의 필드를 탭키나 공백으로 구분해서 써주면 된다.
분 시 일 월 주
또한 한 필드에서 여러개의 값을 지정하고 싶은 경우에는 아래와 같은 오퍼레이터를 사용하면 된다.
('주'의 경우 0과 7은 일요일을 의미한다.)
* : 모든 가능한 값
M-N : 범위를 지정
M-N/X 또는 */X : X라는 간격을 지정
A,B,C,...,Z : 여러개의 값을 열거
주기적으로 스케쥴되는 태스크를 지정하기 위해서는 'H' 심볼을 사용해야 한다. 랜덤한 값 정도로 생각하면 된다.
아래의 예를 보면 이해가 쉽다.
예를 들어 보자.
매시각 정각에 빌드를 하려면 아래와 같이 하면 된다.
0 * * * *
이렇게 지정하면 1시 정각, 2시 정각, ... 뭐 이런 식으로 실행이 될 것이다.
1시간 간격으로 빌드를 하려면 아래와 같이 하면 된다.
H * * * *
이렇게 지정하면 가령 1시 42분, 2시 42분, ... 뭐 이런 식으로 실행이 될 것이다.
위 두가지 방법 0 * * * *과 H * * * *의 차이점은 무엇일까?
0 * * * *로 스케쥴을 지정한 Job이 많은 경우, 모든 작업이 정확히 정각에 빌드를 실행하므로 순간적으로 빌드 장비의 리소스 사용이 급격히 늘어난다. 하지만 H * * * *로 지정한 경우에는 1시간 간격으로 실행한다라고만 지정했으므로 젠킨스가 내부적으로 빌드 시간을 결정해서 빌드를 하므로 부하가 골고루 분산되는 효과를 얻을 수 있다. 그러므로 주기적으로 실행하는 빌드가 있다면 0 * * * * 처럼 시간을 직접 지정한 방식 보다는 H * * * *가 제한된 리소스를 가진 빌드 환경에서 보다 효과적이다.
좀더 예를 들면...
하루 간격으로 빌드를 하려면 아래와 같이 하면 된다.
H H * * *
20분 간격으로 빌드를 하려면 아래와 같이 하면 된다.
H/20 * * * *
이렇게 설정하면 예를 들어 7시3분, 7시23분, 7시43분 뭐 이린 식으로 실행이 될 것이다.
일요일밤 밤 11시에 빌드하고자 한다면 아래와 같이 하면 된다.
00 23 * * 0
매 시간 전반 30분에 10분 간격으로 빌드를 하려면 아래와 같이 하면 된다.
H(0-29)/10 * * * *
즉, 범위와 간격을 모두 지정하면 된다.
월요일부터 금요일까지 오전 9시부터 오후 4시까지 2시간 간격으로 빌드를 하려면 아래와 같이 하면 된다.
H 9-16/2 * * 1-5
1-5는 월요일부터 금요일임.
1월부터 11월까지 각 월의 1일과 15일에 하루 한번 빌드를 하려면 아래와 같이 하면 된다.
H H 1,15 1-11 *
또한 @yearly, @annually, @monthly, @weekly, @dailiy, @midnight, 그리고 @hourly와 같이 자주 사용하는 것들에 대해 별칭을 제공한다.
처음엔 어려운 것 같지만 규칙만 이해하면 쉽다. 뭐 알면 어려운게 뭐가 있겠냐마는... -_--;;;
* 위의 예제는 젠킨스의 도움말을 참조하였다.
출처: https://khie74.tistory.com/1169521477 [광수의 일본(日本)과 IT이야기]
'젠킨스' 카테고리의 다른 글
젠킨스 에러 (0) | 2021.05.17 |
---|---|
Jenkins를 사용하여 SSH를 통해 다른 서버에 연결 (Using Jenkins to connect other server via SSH) (0) | 2021.03.18 |
젠킨스 스케쥴을 이용하여 업무시간을 단축 하기 (0) | 2021.02.08 |
Python, Docker, Flask, GitLab, Jenkins를 사용하여 NLP 모델 빌드 및 배포 (CI/CD 구현 완료) (0) | 2021.01.23 |
젠킨스 설치 (0) | 2020.12.24 |
댓글