130초 또는 2분 10초마다 실행되는 CRON 작업을 생성할 수 있습니까?
답변1
cron이 제공하는 가장 미세한 단위는 1분입니다. 1분마다 작업을 실행하고 다음 1분 전에 실행해야 하는지 결정하고 정확한 시간을 기다린 다음 계속하도록 할 수 있을 것 같습니다.
- 계산하다자정 이후 초모듈 130.
- 130에서 이 숫자를 빼세요.
- 대답이 60보다 작으면 해당 시간만큼 기다렸다가 계속하십시오.
- 대답이 130이면 즉시 계속하십시오.
답변2
systemd 배포판을 사용하는 경우 systemd 타이머를 사용하여 이 수준의 타이밍 해상도를 얻을 수 있습니다. 사용 사례에 따라 이를 delta-t(예: 부팅 후 x초마다)로 사용하거나 벽시계 시간(예: 00:00:10, 00:02:10 등)을 사용하여 구성할 수 있습니다.
즉, 2개의 파일을 생성하게 됩니다.
첫 번째는 .timer 파일이고,여기에 설명. 이는 타이머 이벤트의 타이밍을 설정하고 시간 초과 이벤트가 발생할 때 발생하는 작업을 구성합니다. 정의할 기준은 다양합니다. 예를 들어 시작 시 즉시 실행하고 130초마다 실행하시겠습니까? 더 낮은 런레벨에 있는 경우에도 실행하시겠습니까? 오류가 발생하면 계속 실행하시겠습니까? 간단히 말해, Systemd는 init 파일과 cron 작업을 사용하는 기존 접근 방식보다 훨씬 더 복잡해졌습니다. 그러나 cron 대신 이를 사용하면 타이밍 문제가 해결됩니다.
두 번째 파일은 일반적으로 타이머 서비스에서 호출하는 .service 파일입니다. 이 파일에서는 cron 작업의 기능(간단한 명령 또는 더 복잡한 작업을 허용하는 다른 스크립트 호출)을 정의합니다. 서비스 파일은 일반적으로 "oneshot"으로 설정됩니다.이봐자세한 내용은.
이 파일은 /etc/systemd/system/에 복사되어야 하며 다음 명령을 실행하여 타이머 서비스를 활성화/시작합니다.
systemctl enable mycronjob.timer
systemctl start mycronjob.timer
Journalctl을 사용하여 구현을 검사/디버깅할 수 있습니다. 자세한 내용은 다음을 참조하세요.위키피디아 토론.