crontab의 조건부 블록

crontab의 조건부 블록

사용자의 크론탭에 "if" 문을 넣는 것이 가능합니까, 아니면 많은 조건부 크론 작업을 구성하는 또 다른 합리적인 방법이 있습니까? 최종 사용자의 관점에서 볼 때 일반 crontab을 사용하고 가능하면 두 줄 사이에 항목을 넣는 것이 가장 쉽습니다.

이상적으로는 다음과 같습니다.

if [ something ]; then
* * * * * /usr/bin/php /path/to/file.php
0 0 * * * /usr/bin/php /path/to/file2.php
*/5 * * * * /root/script.sh
fi

답변1

이것을 정확하게 하는 것은 불가능합니다.

그러나 당신이 할 수 있는 것은 /usr/local/bin/check_live서버가 현재 활성화되어 있으면 상태 코드 0으로 종료되고 그렇지 않으면 0이 아닌 스크립트를 만드는 것입니다.

그런 다음 다음과 같은 crontab 줄을 가질 수 있습니다.

* * * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file.php
0 0 * * * /usr/local/bin/check_live && /usr/bin/php /path/to/file2.php
*/5 * * * * /usr/local/bin/check_live && /root/script.sh

답변2

crontab 파일에 넣는 것은 권장하지 않습니다. 대신 조건을 설정할 스크립트를 만든 다음 이를 crontab 파일에 넣으세요. 훨씬 더 깔끔하고 정리된 설정을 갖게 될 것입니다.

관련 정보