crontab 설정에 파일을 포함 시킵니까?


8

배포 할 때 모든 백엔드에서 cron 작업을 쉽게 업데이트 할 수 있도록 프로젝트 특정 crontab 구성을 코드 저장소에 넣으려고합니다.

crontab 설정에 파일을 포함시킬 수 있습니까? 같은 것

* * * * * execsomething /blablabla/blah/
* * * * * onemore /blablabla
@include '/home/user/project/crontab.conf'

답변:


8

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

사용자 이름이 변수가 될 수 있습니까? 동일한 사용자로 실행해야하는 여러 명령이 있지만 다른 환경에서는 다른 사용자 일 수 있습니다. $ USER = joeblow 1 1 * * * $ USER echo "serverfault is awesome"> / dev / null과 같은 작업을 수행 할 수 있습니까?
Jay K

cron 데몬에 따라 다릅니다. cronie는 예를 들어 환경 변수를 허용하지 않습니다.
Boscoe

4

내가 아는 한 그게 다야 /etc/cron.d.

Boscoe가 지적했듯이 /etc/cron.{hourly,daily,weekly,monthly}디렉토리 도 있지만 /bin/su, EUID를 변경하는 데 명시 적으로 사용하지 않는 한 디렉토리의 작업은 루트로만 실행할 수 있습니다 . 작업 /etc/cron.d에는 사용자를 실행하는 사용자를 지정하는 추가 필드가 있으며 질문에 /home/user경로가 포함되어있는 방식에 따라 이러한 작업을 임의의 사용자로 실행할 수 있다고 생각합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.