2012-03-03 1 views
2

가정하자 나는 다음과 같은 크론 항목이 있습니다 모든 cron 작업 전에 실행되는 프리 훅 (pre-hook) 및 포스트 훅 (post-hook) 스크립트는 어떻게 추가합니까?

* * * * * /bin/date 

가 지금은 이전과 크론 작업이 실행 된 후 두 스크립트를 실행한다고 가정합니다.

* * * * * /bin/prehook ; /bin/date ; /bin/posthook 

을 또는 내가 여부 date 명령의 실행을 결정하기 위해 prehook의 종료 코드를 원한다면,이 할 수있는 :

I는 다음과 같이하기 위해 cron 항목을 수정할 수

* * * * * /bin/prehook && /bin/date ; /bin/posthook 

그러나 모든 단일 crontab을 편집하지 않고 모든 cron 작업에 전역 적으로 적용 할 수있는 솔루션을 찾고 있습니다. 나는 많은 버전 제어 시스템에서 볼 수있는 pre-commit과 post-commit hook과 유사하다고 본다.

답변

0

나는 수정되지 않은 Vixie cron과 같은 표준 cron 구현을 사용하는 쉬운 해결책이 있다고 생각하지 않습니다.

단일 crontab의 모든 작업을 crontab의 SHELL을 사용자 정의 래퍼 스크립트로 설정하면 쉽게 완료 할 수 있지만 사용되는 기본 셸을 전역으로 구성하는 방법은없는 것처럼 보입니다.

다른 cron 구현으로 이동하는 것이 옵션 인 경우 다음과 같습니다. bcron 비슷한 용도로 글로벌 래퍼 스크립트를 사용하는 것으로 보입니다. 그러나 나는이 프로젝트가 얼마나 살아 있고 쓸모가 있는지 전혀 모른다.

0

내가 사용하는이 시스템은 crontab 항목이 항상 같은 하나의 스크립트 이름으로 구성한다는 것입니다 :

3 1 * * * /home/me/bin/Cron/daily 

/home/me/bin/Cron/daily의 스크립트는 실제로 무엇에 보이는 하나의 스크립트, runcron에 대한 링크입니다 호출됩니다 (예 : daily). 내 환경을 설정합니다 (cron은 최소한의 환경 이상을 설정하지 않기 때문에) /home/me/bin/daily을 실행합니다. cron을 디버깅하거나 프리 훅이나 포스트 훅을 추가 할 필요가 있다면 (/home/me/bin/Cron/runcron을 수정하여) 또는 /home/me/bin/Cron/daily을 일시적으로 일반 runcron 스크립트의 수정 된 복사본으로 만들어 전역 적으로 수행 할 수 있습니다. 이러한 융통성은 내가 필요로하는 경우에 매우 유용하며 실제 crontab 항목에 변경을 포함하지 않습니다.

내 스크립트는 제공되는 인수를 중계합니다. 장기간에 걸쳐 해당 기능을 사용할 충분한 이유를 찾지 못했습니다. daily, weekday, weeklymonthly에 대한 항목이 있습니다. (Where can I set environment variables that crontab will use? 참조)

+0

해결 방법에 따라 cron이 수정됩니다. 이상적으로는 모든 단일 cron 항목을 변경하지 않아도됩니다. 그러나 래퍼 솔루션이 내가 필요한 방식 일 수 있습니다. – Pete