n
분 마다 크론을 실행하려는 경우 값에 따라 몇 가지 가능한 옵션이 있습니다 n
.
n
60 나누기 (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30)
여기서 해결책은 /
표기법 을 사용하여 간단합니다 .
m-59/n * * * * command
위에서 n
는 값 n
을 m
나타내며 n
또는 보다 작은 값 을 나타냅니다 *
. 이것은 분에 명령을 실행합니다m,m+n,m+2n,...
n
60을 나누지 않음
경우 n
(60)를 분할하지 않습니다, 당신은 크론이 깨끗하게 할 수 없지만이 가능합니다. 이렇게하려면 테스트가 시간을 확인하는 크론에 테스트를 넣어야합니다. 이는 UNIX 타임 스탬프를 볼 때 가장 잘 수행되며 1970-01-01 00:00:00 UTC
. Marty McFly가 Riverdale에 처음 도착했을 때 명령 실행을 시작한 다음 n
몇 분 후에 이를 반복한다고 가정 해 보겠습니다 .
% date -d '2015-10-21 07:28:00' +%s
1445412480
cronjob이 42
`2015-10-21 07:28:00 '이후 1 분 마다 실행되는 경우 crontab은 다음과 같습니다.
* * * * * minutetestcmd "2015-10-21 07:28:00" 42 && command
로 minutetestcmd
정의
#!/usr/bin/env bash
starttime=$(date -d "$1" "+%s")
now=$(date "+%s")
minutes=$(( (now - starttime) / 60 ))
modulo=$2
(( now >= starttime )) && (( minutes % modulo == 0 ))
비고 : UNIX 시간은 윤초의 영향을받지 않습니다.
비고 : cron
1 초 미만의 정확도가 없습니다 .