'cronnext'는 각 분 cronjob의 'nextstring'을 *현재* 분, 즉 *과거*의 시작으로 보고합니다. 정상?

'cronnext'는 각 분 cronjob의 'nextstring'을 *현재* 분, 즉 *과거*의 시작으로 보고합니다. 정상?

그래서 나는 이 이상한 것을 보았습니다(또는 경험이 거의 없기 때문에 적어도 나에게는 이상했습니다).

cronnextnextstring분당 cronjob이 무엇인지 알려주세요 .시작~의현재의분,
즉,과거.

예를 들어 , cronnext에서 실행 하면 다음과 같이 표시됩니다. ( ( 순진하게 예상했던 대로) 대신 : )02:11:27

nextstring: Tue Jul 25 02:11:00 2023


nextstring: Tue Jul 25 02:12:00 2023

이게 정상인가요, 아니면...?

어떤 매뉴얼 페이지에서도 이에 대한 내용을 찾을 수 없고,
제가 생각할 수 있는 용어로는 어떤 것도 검색할 수 없기 때문입니다...

나는 anacron또한 태그를 추가했습니다
.하다설치했는데
직접 사용해본 적이 없어서
관련성이 있는지는 모르겠습니다.

(
$ sudo cronnext -c
#=>

  - user: "username"  
    crontab: /var/spool/cron/tabs/username  
    system: 0  
    entries:  
      - user: username  
        cmd: "/home/username/my_script.sh"  
        flags: 0x0F  
        flagnames: MIN_STAR|HR_STAR|DOM_STAR|DOW_STAR  
        delay: 0  
        next: 1690276260  
        nextstring: Tue Jul 25 02:11:00 2023  
next: 1690276260  

)

(
이 문제가 발생했을 때 원래 수정하려고 했던 버그를 이미 찾아 수정했기
때문에 결국 이 특정 문제에 대한 의구심에 불과했지만
여전히 문제인 것 같아서 물어보고 싶었습니다.이상한큰 책.
)

답변1

데비안에는 해당 도구가 없어서 최신 버전을 다운로드했는데,크로니-1.6.1Github의 소스 저장소에서.

맨 페이지는 말한다설명하다,

cron다음 작업을 언제 실행할지 결정합니다. 인수 없이 모든 크론탭을 고려한 시간을 에포크 이후 초 단위로 인쇄합니다.분 단위로 반올림.

(강조합니다.) 코드는 항상 반올림되는 것처럼 보이며, 이로 인해 찾은 것과 같은 잘못된 답변이 생성됩니다.

이것이 내가 만든 방법입니다.

./configure --prefix=
make

그리고 실행하세요:

src/cronnext

src/cronnext.c해결책은 호출의 250번째 라인에서 루프 시작 조건을 대신 nextmatch()사용하도록 변경 하는 것 같습니다 . 하지만 패치를 제출할 만큼 이에 대한 확신이 없기 때문에 이를 사용할 때보다는 344행에 정의된 곳에 60(초)을 추가하여 수정하는 것이 더 나을 것이라고 생각합니다.start+60startstart

이 프로그램을 사용하고 있으므로 이에 대한 버그 보고서를 제출하는 것이 좋습니다.이슈 트래커.

관련 정보