내가 cron이 잘못 표시된 일정으로 실패한 것을 가장 자주 본 이유는 무엇입니까? 오후 11시 15 분에 예약 된 작업 15 23 * * *
을 * * 11 15 *
또는 대신에 지정하는 것이 실제로 필요합니다 11 15 * * *
. 자정 이후 작업에 대한 요일도 혼동됩니다. MF는 2-6
자정 이후 가 아닙니다 1-5
. 특정 날짜는 일반적으로 * * 3 1 *
3 월 3 일이 아닌 거의 사용 하지 않으므로 문제가됩니다 . 확실하지 않은 경우 https://crontab.guru/ 에서 온라인으로 cron 일정을 확인하십시오 .
2/3
시간 사양 과 같은 지원되지 않는 옵션을 사용하여 다른 플랫폼에서 작업하는 경우 에도 실패 할 수 있습니다. 이것은 매우 유용한 옵션이지만 보편적으로 사용 가능한 것은 아닙니다. 또한 같은 목록과 문제를 통해 실행 한 1-5
나 1,3,5
.
규정되지 않은 경로를 사용하면 문제점이 발생했습니다. 기본 경로는 일반적으로 /bin:/usr/bin
표준 명령 만 실행됩니다. 이 디렉토리에는 일반적으로 원하는 명령이 없습니다. 비표준 명령을 사용하는 스크립트에도 영향을줍니다. 다른 환경 변수도 누락 될 수 있습니다.
기존 crontab을 완전히 지우면 문제가 발생했습니다. 이제 파일 사본에서로드합니다. 기존 crontab -l
크론 탭이 클로버 될 경우이를 사용하여 복구 할 수 있습니다 . crontab의 사본을 ~ / bin에 보관합니다. 전체적으로 주석 처리되며 줄로 끝납니다 # EOF
. 이것은 다음과 같은 crontab 항목에서 매일 다시로드됩니다.
#! / usr / bin / crontab
#이 crontab 새로 고침
#
54 12 * * * $ {HOME} / bin / crontab
위의 reload 명령은 crontab을 실행하는 뱅 경로가있는 실행 가능한 crontab에 의존합니다. 일부 시스템에서는 명령에서 crontab을 실행하고 파일을 지정해야합니다. 디렉토리가 네트워크 공유 인 경우 종종 crontab.$(hostname)
파일 이름으로 사용 합니다. 이것은 잘못된 서버에 잘못된 crontab이로드 된 경우를 정정합니다.
파일을 사용하면 crontab의 백업을 제공하고 임시 편집 (사용할 때만 crontab -e
)을 자동으로 제거 할 수 있습니다. 스케줄링 매개 변수를 올바르게 얻는 데 도움이되는 헤더가 있습니다. 경험이없는 사용자가 crontab을 편집 할 때 추가했습니다.
드물게 사용자 입력이 필요한 명령이 실행되었습니다. 일부는 입력 리디렉션으로 작동하지만 crontab에서는 실패합니다.
crontab -e
크론이 적용 되려면 닫아야합니다 . 예를 들어 vim을 사용하면 파일을 편집하고:w
쓰는 데 사용하지만 종료 할 때까지 작업이 cron에 추가되지 않습니다. 그래서 나는:q
또한 그 후에도 일을 보지 않을 것 입니다.