
cron을 활성화해야 할 때마다 cron 파일을 스풀 폴더에 복사합니다.
cp /home/shantanu/shantanu /var/spool/cron/
chown shantanu:root /var/spool/cron/shantanu
이것이 작동할까요? 내가 직면할 수 있는 문제가 있나요?
업데이트: CentOS 사용
답변1
특정 사용자에 대해 일부 cron 작업을 비활성화하는 공식적인 방법은 주석 처리 시작 부분에 crontab -e -u <user>
를 입력하고 넣는 것입니다 .#
업데이트
cron 파일은 쉘 스크립트의 일부가 될 것이기 때문입니다.
이 시도:
crontab -l -u shantanuo > shantanuo.cron
sed -i 's/^/#/' shantanuo.cron
crontab shantanuo.cron
rm -f shantanuo.cron
답변2
그것5월일하다.하지만..
이전 포스터에서 말했듯이: 이러지 마세요. 사용 crontab -e
. 파일을 직접 편집하면 효과가 있을 수 있지만 강력한 방법은 아닙니다. 관련 구성 요소를 업데이트할 때 언제든지 콘텐츠가 손상될 수 있습니다. 또한 이식성이 좋지 않아 다른 시스템에서 파일을 다른 위치에 저장할 수 있습니다. 이는 표준 iolib를 사용하는 대신 "printf"를 직접 구현하는 것과 같습니다.
그러니 이런 식으로 하지 마세요.
편집: 그리고 쉘 스크립트를 사용하여 crontab을 생성해야 하는 경우에는 내용을 파이프로 연결하면 됩니다 crontab
(의사 파일 '-'도 알고 있습니다! 매뉴얼 페이지를 읽어보세요.).
답변3
command 를 사용 crontab -e
하거나 루트로 로그인한 경우에는 왜 안 됩니까 crontab -e -u shantanu
?
답변4
cron을 다시 시작하지 않고(예: 3분마다 실행되는 작업에 영향을 미칠 수 있음) 작업을 일시 중단하려는 경우 스크립트에서 쉽게 생성하거나 제거할 수 있는 잠금 파일을 사용할 수 있습니다.
*/3 0 * * * [ ! -f /tmp/job.lock ] && /path/to/job
따라서 작업 사용을 일시 중지하려면 다음을 수행하십시오.
touch /tmp/job.lock
다음을 수행하여 cron 내에서 일정을 다시 시작합니다.
rm /tmp/job.lock
이것의 장점은 일정을 방해하거나 crontab을 편집(스크립트 또는 수동으로)하여 실수로 cron을 손상시킬 염려 없이 다른 작업(또는 모두 동일한 잠금 파일을 사용하는 경우 작업 그룹)에 대해 다른 잠금 파일을 사용할 수 있다는 것입니다. .