
두 개의 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 -
이것은 나에게 효과적입니다. 도움이 되길 바랍니다.