systemd 타이머는 매 2시간마다 매시 30분에 작동합니까?

systemd 타이머는 매 2시간마다 매시 30분에 작동합니까?

다음을 포함하여 타이머에 대한 몇 가지 좋은 참고 자료가 있습니다 systemd.

systemd.time

불행히도 주기적으로 실행되지만 매 시간 이후 특정 분 단위로 실행되는 타이머를 만드는 방법은 여전히 ​​​​불분명합니다.

2시간마다 30분 동안 실행되는 타이머를 만들고 싶습니다. 따라서 14:30(오후 2:30), 16:30, 18:30, 20:30 등에 실행됩니다.

다음을 포함하여 작동하지 않는 몇 가지 작업을 시도했습니다.

OnCalendar=*-*-* *00/2:30

이:

OnCalendar=*-*-* *:00/2:30

원하는 결과를 만들어내는 타이밍 사양을 찾지 못했습니다.

또한 그 순간에 실행 중일 필요는 없으므로 다음을 사용할 생각입니다.

AccuracySec=5m

답변1

2시간마다 매시 30분마다

OnCalendar=00/2:30
#   iow    hh/r:mm

00/2- hh값은 이고 00, 반복 값은 입니다 r. 2즉, hh해당 값에 반복 값의 모든 배수( 00, 02, 04.. 14, 16.. 등) 를 더한 값과 일치합니다
30. - mm값은 3030분 이후 매 시간마다 일치합니다.

그 이후로 같은 페이지에서 날짜와 초가 누락되었습니다 man.

날짜 지정은 생략될 수 있으며, 이 경우 현재 날짜가 암시됩니다. [...] [...] 두 번째 부분을 지정하지 않으면 ":00"으로 간주됩니다.

답변2

미래의 독자를 위한 솔루션:

    # systemd-analyze calendar --iterations=2 '0/2:30:00'            
      Original form: 0/2:30:00
    Normalized form: *-*-* 00/2:30:00
        Next elapse: Fri 2023-01-20 16:30:00 EET
           (in UTC): Fri 2023-01-20 14:30:00 UTC
           From now: 1h 22min left
           Iter. #2: Fri 2023-01-20 18:30:00 EET
           (in UTC): Fri 2023-01-20 16:30:00 UTC
           From now: 3h 22min left

관련 정보