단일 사용자가 여러 개의 crontab 파일을 가질 수 있습니까?

단일 사용자가 여러 개의 crontab 파일을 가질 수 있습니까?

두 개의 crontab 파일을 생성한다고 가정합니다.

  1. /tmp/my-crontab
  2. /root/my-alternate-crontab

각 crontab 파일은 다른 스크립트를 실행하도록 예약되어 있습니다.

cronjob을 시작하면 첫 번째 작업이 이전 작업으로 대체됩니다.

crontab -u smarak /tmp/my-crontab
crontab -u smarak /root/my-alternate-crontab

단일 사용자가 위의 작업을 수행할 수 있습니까?

답변1

단일 crontab을 사용하는 문제를 해결하는 두 가지 방법.

crontab 항목을 같은 디렉터리의 파일에 넣은 다음 다음을 사용하여 ~/crontab.d/thisandthat.cron해당 항목의 변경 사항을 시스템 crontab에 커밋합니다.

cat ~/crontab.d/*.cron | crontab -

확장은 .cron실수로 편집자의 백업 파일을 포함하는 것을 방지하는 것입니다. 모든 파일이 함께 연결되므로 파일에 설정된 모든 변수는 이후 파일에도 적용됩니다.

/etc/cron.hourly데비안에서 친구를 구현하는 방법과 비슷한 작업을 수행할 수도 있습니다 . 기본에는 /etc/crontab다음과 같은 규칙이 포함되어 있습니다.

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly

여러 프로그램을 실행하기 위해 단일 crontab 항목을 구성할 수 있습니다. 데비안은 편집자 등이 만든 백업 파일을 실행하지 않기 위해 이상한 파일 이름을 건너뛴다는 점을 제외 run-parts dir하면 비슷합니다.for f in dir/* ; do "$f" ; done

답변2

아니요. 각 사용자는 하나의 crontab을 가집니다. 왜? crontab은 단일 사용자와 관련된 모든 크론 작업의 "테이블"("탭")이기 때문입니다.

로 여러 작업을 실행하려면 croncrontab에 여러 줄을 추가하면 됩니다.

cron 작업 사양이 포함된 파일이 여러 개 있는 경우 해당 파일을 연결하면 됩니다.

cat crontab1 crontab2 crontab3 >my-crontab
crontab my-crontab

답변3

실제 항목을 읽고 바로 뒤에 새 항목을 추가하면 됩니다.
일단 이것을 실행하면:

crontab -u smarak /tmp/my-crontab

이상적으로는 다음과 같은 작업을 수행할 수 있습니다.

crontab -u smarak <(cat /root/my-alternate-crontab) <(crontab -l)

그러나 crontab은 위의 형식을 허용하지 않는 것 같으므로 해결 방법은 다음과 같습니다.

cat /root/my-alternate-crontab <(crontab -l)| crontab -u smarak -

이것은 나에게 효과적입니다. 도움이 되길 바랍니다.

관련 정보