한국어

개발자 도구 · Crontab 생성기

crontab(5) 필드: POSIX가 지정하는 것과 Vixie 확장이 무엇인지

· 배경

크론 이식성 검증

허용되는 토큰과 보호된 경계가 포함된 5열 문법 카드
원본 ToolAcre 벡터 일러스트레이션

모든 크론 기능이 표준은 아닙니다. 이 게시물에서는 POSIX crontab 사양에 필요한 것과 Vixie cron이 추가하고 대부분의 Linux 시스템에서 가정하는 확장명(단계, 이름, 별명)을 구분합니다.

유효한 ToolAcre 표현식은 여전히 다른 스케줄러에서 지원되지 않을 수 있습니다.

ToolAcre를 통과하는 일정은 모든 cron 구현이 아니라 이 파서를 만족했습니다. 이식성은 겸손한 진술에서 시작됩니다. 경로는 정확히 5개의 필드와 정의된 토큰 문법을 허용합니다. 대상 기기, 서비스 또는 프레임워크는 더 적거나 더 많거나 구조적으로 다른 것을 수용할 수 있습니다.

브라우저 결과를 표현, 설명, 경고 및 미리보기 영역과 같은 하나의 증거로 유지합니다. 배포하기 전에 대상 문서를 비교하고 무해한 테스트를 실행하십시오. 로컬 녹색 신호가 범용 호환성 보장으로 승격되는 경우에만 검증이 위험해집니다.

저장소는 POSIX에서 요구하는 사항을 설정하지 않습니다.

통합 문서는 POSIX 요구 사항을 확장과 분리했지만 저장소 소스에는 POSIX 사양이 표시되지 않습니다. ToolAcre의 행동은 표준이 요구하는 기능을 증명할 수 없습니다. 따라서 이 섹션에서는 구현된 구문을 표준 본문에 할당하지 않고 설명합니다.

구현된 숫자 범위는 0~59분, 0~23시간, 1~31일, 1~12개월 및 0–7 평일. 와일드카드, 단일 값, 포함 범위, 쉼표 목록, 와일드카드 단계, 범위 단계 및 단계가 포함된 기본 시작 값이 모두 구문 분석되고 테스트됩니다.

이름, 단계, 일요일 7 및 별칭은 표준 기록 주장 없이 여기에서 구현됩니다.

월 이름 JAN~DEC 및 요일 이름 SUN~SAT는 대소문자를 구분하지 않습니다. 이름은 목록과 범위에 단독으로 나타날 수 있습니다. 주중 7은 일요일로 승인되고 0로 정규화됩니다. 이는 다른 구현에서 분류하는 방법에 관계없이 `parseField`의 관찰 가능한 속성입니다.

별칭 테이블은 `@yearly`, `@annually`, `@monthly`, `@weekly`, `@daily`, `@midnight` 및 `@hourly`을 확장합니다. `@reboot`은(는) 미리 볼 달력 일정이 없기 때문에 의도적으로 거부되었습니다. 알 수 없는 at 기호 단어는 지원 목록 이름 지정 오류를 수신합니다.

환경 할당 지원은 이 파서 외부에 있습니다.

환경 할당은 이 표현식 문법의 일부가 아닙니다. 입력 상자에는 하나의 일정이 필요하며 `parseCron`는 지원되는 별칭을 확인한 후 일정을 5개 조각으로 나눕니다. `KEY=value` 라인은 이 경로를 통한 확장, 인용 또는 이식성을 테스트할 수 없습니다.

이러한 생략은 잘못된 표준 주장을 방지합니다. 완전한 crontab 파일에는 표현식 전용 도구에서는 볼 수 없는 구문이 포함될 수 있습니다. 대상과 별도로 이를 확인하십시오. ToolAcre의 정확한 필드 오류는 더 큰 파일의 관련 없는 줄에 대한 판단으로 용도가 변경되어서는 안 됩니다.

대상 문법을 확인하고 무해한 일정 테스트를 사용하세요

대상 확인은 필드 수 및 연산자부터 시작해야 합니다. 이름, 일요일 7, 슬래시 단계 및 서명 별칭이 허용되는지 확인하세요. 그런 다음 단기간에 무해한 관찰 가능한 작업을 설치하고 증거가 캡처된 후 제거하고 대상 결과를 의도한 표현과 비교합니다.

민감한 명령을 사용하거나 드문 연간 날짜를 기다려 이식성을 테스트하지 마십시오. 문법 지원을 구별하는 가장 작은 안전 프로브를 선택하십시오. ToolAcre는 해당 일정을 구성하고 설명하는 데 도움을 줄 수 있으며, 대상 실행은 브라우저가 알 수 없는 부분을 설정합니다.

작업 예: ToolAcre 문법에 따른 단계 형식 및 명시적 목록

ToolAcre는 5분마다 `*/5 * * * *`을 허용합니다. 또한 명시적인 분 목록 `0,5,10,15,20,25,30,35,40,45,50,55 * * * *`을 허용합니다. 구문 분석은 두 분 필드를 모두 동일한 12개 값으로 확장하므로 다음 실행 후보가 동일한 시작 순간 및 영역에서 일치합니다.

명시적 목록은 대상에 단계 구문이 없을 때 대체 후보 역할을 할 수 있지만 이 저장소는 해당 대상의 목록 지원을 인증할 수 없습니다. 의미론적 동등성을 확인하기 위해 ToolAcre의 두 형식을 비교한 다음 대상 문서의 형식을 확인합니다. 여기에서의 동등성은 이식성 증명이 아닙니다.

6개 필드 구문이 거부됩니다. 외부 의미는 여기에 문서화되어 있지 않습니다.

여섯 번째 필드는 허용되지 않습니다. 이 오류는 선행 초 스타일이 Quartz 또는 systemd와 유사한 입력에 속하지만 파서가 해당 문법을 구현하지 않음을 나타냅니다. 연도 필드가 없고 `?`, `L`, `W` 또는 `#` 연산자가 없습니다.

번역을 시도하기 전에 필드 수를 계산합니다. 지원되지 않는 구문이 스케줄링 의미를 전달하는 경우 명백한 5개 필드 재작성은 손실이 있을 수 있습니다. 소스 스케줄러에 대한 문서와 테스트를 사용한 다음 ToolAcre의 대상 문법으로 표현 가능한 요구 사항만 표현하세요. 다른 것들은 명시적인 비호환성으로 남아 있어야 합니다.

요점: 어떤 기능이 확장인지 파악하고 이식성이 중요한 경우 생성기를 사용하여 두 양식을 모두 작성하고 확인합니다.

이식성은 표현식에 포함된 레이블이 아니라 비교입니다. ToolAcre는 5개의 위치, 숫자 경계, 선택한 이름, 구성 가능한 범위/lists/steps 및 7개의 별칭 등 잘 테스트된 측면을 제공합니다. 또한 잘못된 형식이나 외국 형식에 대한 명확한 거부를 제공합니다.

해당 계약을 사용하여 정확하게 추론한 다음 상대방을 확인합니다. 이 파서에서는 명시적 목록과 단계가 동일할 수 있지만 다른 곳에서는 하나만 작동합니다. 방언 경계를 보고하는 것은 기사가 실제로 제공하지 않은 표준을 호출하는 것보다 더 실행 가능합니다.