k8s cronjob의 단일 작업에 대한 여러 일정

k8s cronjob의 단일 작업에 대한 여러 일정

경고: 이쪽에 k8s 그린혼이 있습니다.

k8s cronjob에 설정될 작업을 실행해야 합니다. 45분마다 실행해야 합니다. 이것을 가지고 있으면 schedule작동하지 않습니다.

0/45 * * * *

에서 실행될 것이기 때문에 X:00대신 . 따라서 대신 여러 일정 규칙을 설정해야 할 수도 있습니다.X:45X+1:00X+1:30

0,45 0/3 * * *
30   1/3 * * *
15   2/3 * * *

여러 일정을 한 번에 설정할 수 있는지 궁금합니다.하나의CronJob 정의 또는 각 CronJob이 각 라인을 처리하도록 여러 CronJob을 설정해야 하는지 여부.

https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/cron-job-v1/

업데이트: 단일 yaml 파일에 단일 매니페스트를 2개 이상 작성하여 3개의 매니페스트와 함께 작동할 수 있다는 내용을 읽었습니다.

답변1

*/45를 시도해 보세요. 설명서에 따르면 0/45는 0의 45개를 하나씩 건너뛰는 것을 의미하기 때문입니다.

답변2

crontab 사양이 불완전하거나 모호한 경우, 실제로 수행되는 작업을 알아내면 문서를 명확히 할 수 있습니다. 모든 테스트는 Linux Mint 19.3(crontab이 POSIX 호환)에서 수행되었습니다.

0/40 * * * * date >> Cron.log

crontab -e는 위의 한 줄짜리 crontab도 허용하지 않습니다. 0은 특정 분입니다. 그것에 건너 뛰는 것은 의미가 없습니다. 그것은 던진다 :

"/tmp/crontab.4BQ7AN/crontab":0: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit? (y/n) 

대조

*/40 * * * * date >> Cron.log

*는 0,1,2,...,59의 목록을 나타내기 때문에 이 버전을 허용합니다. 건너뛰기는 이를 0과 40으로 줄입니다.

나는 범위와 단계 구성의 효과를 보여주기 위해 crontab을 구성했습니다.

$ crontab -l
#.. Crontab to illustrate ranges and steps.

#.. Every 20 mins from 0: 0, 20, 40.
*/20       13,14 * * * ~/Stamp 'Line  4:: */20'

#.. Every 20 minutes from 5: 5, 25, 45.
5-59/20    13,14 * * * ~/Stamp 'Line  7:: 5-59/20'

#.. Every 7 minutes from 9 to 35: 9, 16, 23, 30.
9-35/7     13,14 * * * ~/Stamp 'Line 10:: 9-35/7'

#.. Every 13 minutes from 33 to 59: 33, 46, 59.
33-59/13   13,14 * * * ~/Stamp 'Line 13:: 33-59/13'

#.. Once only.
14-14/2    13,14 * * * ~/Stamp 'Line 16:: 14-14/2'

#.. Once only.
11-59/999  13,14 * * * ~/Stamp 'Line 19:: 11-59/999'

~/Stamp는 실행 시간과 crontab 파일의 분 값을 기록하는 쉘 스크립트입니다.

$ cat ~/Stamp
#! /bin/bash
#: Stamp: demonstrate crontab processing.

Log="./133000.cronLog"
printf >>"${Log}" '%(%T)T cron time spec %s\n' -1 "${1}"

13시 35분에 crontab을 설치했는데 이 작업이 기록되었습니다. 13,14시간 값으로 인해 14시 59분에 로깅이 중지되어 1시간 경계를 넘어 실행되었습니다. 나는 시간, 일, 월 및 요일 열이 동일하게 작동한다고 생각하지만 90분 테스트이면 충분합니다.

paul@paul-RV415-RV515 ~ $ tail -F 133000.cronLog
tail: cannot open '133000.cronLog' for reading: No such file or directory
tail: '133000.cronLog' has appeared;  following new file
13:40:01 cron time spec Line  4:: */20
13:45:01 cron time spec Line  7:: 5-59/20
13:46:01 cron time spec Line 13:: 33-59/13
13:59:01 cron time spec Line 13:: 33-59/13
14:00:01 cron time spec Line  4:: */20
14:05:01 cron time spec Line  7:: 5-59/20
14:09:01 cron time spec Line 10:: 9-35/7
14:11:01 cron time spec Line 19:: 11-59/999
14:14:01 cron time spec Line 16:: 14-14/2
14:16:01 cron time spec Line 10:: 9-35/7
14:20:01 cron time spec Line  4:: */20
14:23:01 cron time spec Line 10:: 9-35/7
14:25:01 cron time spec Line  7:: 5-59/20
14:30:01 cron time spec Line 10:: 9-35/7
14:33:01 cron time spec Line 13:: 33-59/13
14:40:01 cron time spec Line  4:: */20
14:45:01 cron time spec Line  7:: 5-59/20
14:46:01 cron time spec Line 13:: 33-59/13
14:59:01 cron time spec Line 13:: 33-59/13
^C
paul@paul-RV415-RV515 ~ $ 

관련 정보