나는 방법을 알고 싶다나크론유효합니다(Fedora에서). 세 가지 관련 질문이 있습니다. 아래 설명이 헷갈리네요아나크론탭 매뉴얼:
START_HOURS_RANGE 변수는 예약된 작업이 실행될 수 있는 시간 간격(시간)을 정의합니다. 이 간격을 놓치면(예: 정전으로 인해) 해당 날짜에 예약된 작업이 실행되지 않습니다.
첫 번째 주요 질문은 "시간 간격이 누락되었습니다"라는 문구가 무엇을 의미합니까?
나는 소프트웨어 시계와 하드웨어 시계가 있다는 것을 알고 있습니다.소프트웨어 시계는 하드웨어 시계에 따라 다릅니다.. 내가 아는 바로는 정전이 오래 지속되면 시스템을 부팅한 후 하드웨어 시계를 소프트웨어 시계에서 조정해야 하므로 소프트웨어 시계는 독립적으로(수동 또는 자동으로) 조정해야 합니다.
따라서 여기에 두 번째 질문이 있습니다. 이것은 시스템이 다운된 동안, 그리고 시작 후 - anacron이 실행되는 시간 내에 - anacron이 여전히 적절한 시간을 갖지 못한다고 가정한다면, anacron이 어떻게 생각하고 있는지를 의미합니까? ? 아직 실행할 시간이 아니므로(그래서 실행되지 않습니다)?
나는 anacron이 데몬 자체가 아니라는 것을 알고 있습니다.이 스택 교환 답변. ~처럼anacron에 대한 Fedora 문서상태, anacron 작업은 데몬 프로세스에 의해 실행됩니다 crond
. 또한 anacron 작업은 시스템 시작 후 즉시 실행된다고 명시되어 있습니다.
따라서 세 번째 질문이 나옵니다. 두 번째 질문에 대한 대답이 "예"인 경우 anacron을 실행하기 전에 시스템 시간을 조정하여 crond
anacron이 실행되도록 할 수 있습니까(그때 시간이 정확하므로)?
고쳐 쓰다
예를 들어보겠습니다. Fedora에서 anacron이 매일 일부 작업을 실행하도록 예약했다고 가정해 보겠습니다. 그리고 시스템은 일반적으로 항상 실행됩니다. 저는 Fedora에서 제공하는 기본 구성을 유지했는데, 이는 anacron이 실행될 것입니다.오직3시 5분과 22시 50분의 시간 프레임에서(설명서의 내용을 정확하게 이해했으면 좋겠습니다) - 물론 시스템이 이 시간 프레임에 실행된다면 말이죠. 이제 2시 30분부터 4시 30분까지 정전이 되어 페도라가 4시 30분에 부팅을 시작한다고 가정해 보겠습니다. crond가 평소와 같이 2분 후(4:32)에 anacron을 실행하고 그 시간에 시스템 시계가 여전히 올바르게 설정되지 않았다고 가정해 보겠습니다. Anacron은 시스템 시계가 2시 32분으로 설정되어 있는 것을 보고 "빠르면 3시 5분에 작업을 실행할 계획이므로 아직 작업을 실행할 시간이 아닙니다"라고 생각합니다.
이를 통해 그날은 실행되지 않는다는 것을 알게 되었습니다(다음 실행은 다음 날 3시 5분부터 시작됩니다).
이제 또 다른 시나리오: 시스템 시간이 crond가 anacron을 실행하기 1분 전인 2:31로 조정되었다고 가정합니다. 4시 32분(지금은 정확한 시간)에 anacron을 실행하면 anacron은 시간을 보고 "좋아, 그럼 내 작업을 실행해야 해. 내 구성에 정의된 임의 지연을 기다렸다가 작업을 실행하자"라고 생각합니다. 사이의 임의의 지연을 기다립니다.4:324:37 및5:175:22 그러면 제 역할을 합니다.
내가 맞나요?
답변1
질문에 순서대로 대답하려면:
anacron
이 기간 동안 호출되지 않으면 간격이 누락됩니다. 예약되지 않았거나 호출 시 시스템이 실행되고 있지 않으면 호출되지 않습니다. 이는 시계와 관련이 있는 것이 아니라cron
시간이 실제로 실행되는지 여부와 더 관련이 있습니다anacron
.호출 되거나
cron
관리자에 의해 호출되면anacron
필요한 경우, 즉 작업이 파일에 지정된 일 수 이상 동안 마지막으로 실행된 경우 예약된 각 작업을 실행합니다anacrontab
. 호출 되지anacron
않으면 예약된 작업이 실행되지 않습니다.anacron
시스템 시작 시 실행 여부는 로컬 구성에 따라 다릅니다 .예 를
anacron
들어 작업에 의해 호출되면cron
현재 시스템 시간을 확인하고 이를 각 작업의 저장된 상태 파일과 비교합니다. 시간 차이가anacrontab
구성 파일에 지정된 작업 시간 보다 크면anacron
작업이 실행됩니다.
이 세 가지 답변은 본질적으로 동일합니다. 조건이 올바른 경우(일정 기간 동안 작업이 실행되지 않은 경우) anacron
해당 작업이 해당 작업에서 실행됩니다. 일로 시작되는 경우가 많습니다. 이는 시스템 시작 시와 매 자정 또는 기타 시간(아마도 하루에 한 번) 실행되는 작업일 수 있습니다. 사용되는 Linux에서는 이를 다르게 호출할 수 있습니다. 실행되지 않으면 당연히 아무 일도 일어나지 않을 것입니다.anacrontab
anacron
cron
systemd
anacron
anacron
시스템 시계가 잘못 설정된 경우 anacron
런타임 시 시계가 얼마나 잘못되었는지와 작업이 마지막으로 실행된 시간에 따라 작업 실행 여부에 영향을 미칠 수 있습니다.