배포 할 때 모든 백엔드에서 cron 작업을 쉽게 업데이트 할 수 있도록 프로젝트 특정 crontab 구성을 코드 저장소에 넣으려고합니다.
crontab 설정에 파일을 포함시킬 수 있습니까? 같은 것
* * * * * execsomething /blablabla/blah/
* * * * * onemore /blablabla
@include '/home/user/project/crontab.conf'
답변
cron 데몬과 배포판에 따라 / etc에 cron 작업이있는 파일을 넣을 수있는 여러 디렉토리가 있어야합니다.
다음 디렉토리에있는 스크립트 (크론 형식 작업이 아님)는 지정된 간격으로 실행됩니다. 참고 주파수가 보장되어 있지만 정확한 시간 은 실행이되지 않을 수 있습니다. 대부분의 사용자에게는 다음 디렉토리로 충분합니다.
/etc/cron.hourly
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
다음 디렉토리에있는 cron 형식 작업 (위의 예와 같이)은 지정된 시간에 cron에 의해 실행됩니다. 일반 항목 외에도 명령 전에 작업 사용자도 지정해야합니다. 패키지 및 소프트웨어 배포의 경우이 방법은 cronjob을 배포하는 가장 좋은 방법입니다.
/etc/cron.d
cron.d 형식의 명령 예 :
1 1 * * * root echo "serverfault is awesome" > /dev/null
답변
내가 아는 한 그게 다야 /etc/cron.d
.
Boscoe가 지적했듯이 /etc/cron.{hourly,daily,weekly,monthly}
디렉토리 도 있지만 /bin/su
, EUID를 변경하는 데 명시 적으로 사용하지 않는 한 디렉토리의 작업은 루트로만 실행할 수 있습니다 . 작업 /etc/cron.d
에는 사용자를 실행하는 사용자를 지정하는 추가 필드가 있으며 질문에 /home/user
경로가 포함되어있는 방식에 따라 이러한 작업을 임의의 사용자로 실행할 수 있다고 생각합니다.