cron을 쉽게 활성화 또는 비활성화

cron을 쉽게 활성화 또는 비활성화

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을 손상시킬 염려 없이 다른 작업(또는 모두 동일한 잠금 파일을 사용하는 경우 작업 그룹)에 대해 다른 잠금 파일을 사용할 수 있다는 것입니다. .

관련 정보