사용자가 여러 개의 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 -

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

관련 정보