/ etc / crontab의 형식을 확인하는 방법이 있습니까? etc / crontab에 예약 된 작업을 고수하여

나는 / etc / crontab에 예약 된 작업을 고수하여 작업이 실행되는 사용자에 관계없이 실행 예정된 내용을 한눈에 볼 수 있습니다.

유일한 단점은 crontab -e와 달리 저장시 형식이 유효성 검사되지 않으므로 길 잃은 문자가 전체 cron을 조용히 중단 할 수 있다는 것입니다.

저장 전후에 / etc / crontab 형식의 유효성을 검사하는 방법이 있습니까?



답변

내가 찾은 신뢰할 수있는 유일한 방법은 로그를 확인하는 것입니다.

cron/etc/crontab1 분마다 확인 하고 다시로드했거나 오류를 발견했음을 나타내는 메시지를 기록합니다.

따라서 편집 후 다음을 실행하십시오.

sleep 60; grep crontab /var/log/syslog | tail

또는 1 분을 기다리지 않고 다음 1 분 + 5 초까지만 기다립니다.

sleep $(( 60 - $(date +%S) + 5 )) && grep cron /var/log/syslog | tail

오류가있는 출력 예 :

Jan  9 19:10:57 r530a cron[107258]: Error: bad minute; while reading /etc/crontab
Jan  9 19:10:57 r530a cron[107258]: (*system*) ERROR (Syntax error, this crontab file will be ignored)

좋은 결과 :

Jan  9 19:19:01 r530a cron[107258]: (*system*) RELOAD (/etc/crontab)

다른 시스템에서는 cron이 다른 파일에 기록 할 수 있습니다.

(나는 systemd ‘s를 사용하여 올바른 로그 파일을 찾는 것을 피할 수 있다고 생각 journalctl -u cron했지만 이러한 로그 항목을 표시하지 않았으며 실제로 2 일 전에 어떤 이유로 든 cron 이벤트 로깅을 중지 한 것 같습니다)


답변

더 최근의 또 다른 해결책은 파이썬 스크립트 chkcrontab입니다.


답변

사악한 멋진 셸 스크립트 에는 crontab 파일을 확인하는 셸 스크립트가 있습니다.

여기서 스크립트가 포함 된 zip 아카이브를 얻을 수 있습니다.

스크립트는 verifycron 이라고 합니다


답변

나는이 멋진 해결책을 여기에서 발견했다 : https://crontab.guru

crontab의 유효성을 검사 할뿐만 아니라 crontab의 실행시기와시기를 명시 적으로 알려주고 오류가있는 위치를 강조 표시합니다.


답변

우분투에서는 그냥 실행할 수있는 것처럼 보입니다.

crontab path/to/crontab/file

참고 :이 cronjob을 시작하면 부작용이 있습니다 (@NZD 덕분에)

파일이 유효하지 않으면 다음과 같은 오류가 발생합니다.

"crontab":11: bad minute
errors in crontab file, can't install.