두 개의 crontab 파일을 생성한다고 가정해 보겠습니다.
/tmp/my-crontab
/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은 단일 사용자와 관련된 모든 크론 작업의 "테이블"("탭")이기 때문입니다.
여러 작업을 실행하려면 cron
crontab에 여러 줄을 추가하면 됩니다.
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 -
이것은 나에게 효과적입니다. 도움이 되길 바랍니다.