답변:
먼저 crontab을 백업하십시오.
crontab -l > my_cron_backup.txt
그런 다음 비울 수 있습니다.
crontab -r
복원하려면
crontab my_cron_backup.txt
crontab -l
crontab -r
내가 찾던 것입니다. 감사 !
루트 액세스 권한이 있습니까? 그냥 cron을 일시 중지
sudo /etc/init.d/crond stop
그런 다음 준비가되면 다시 시작하십시오.
sudo /etc/init.d/crond start
sudo service cron stop
/etc/init.d/cron stop
.
service cron stop
.
하나의 라이너가 아니기 때문에 위의 옵션에 만족하지 않았습니다.
비활성화하려면 crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab
사용하려면 crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab
사용 예 (댓글을 비활성화하지 않도록 표시하도록 편집 됨)
$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh
$ crontab -l|perl -nle 's/^([^#])/# $1/;print'|crontab
$ crontab -l
# Comment
# 0 0 * * 0 /opt/something.sh
$ crontab -l|perl -nle 's/^#\s*([0-9*])/$1/;print'|crontab
$ crontab -l
# Comment
0 0 * * 0 /opt/something.sh
이것을 RHEL 및 AIX에서 테스트했으며 설치할 필요없이 즉시 사용할 수 있습니다.
crontab: usage error: file name must be specified for replace
합니다. crontab
매개 변수없이 사용하면 파일 (?)을 지정해야합니다 ( replace
기본적으로).
제한된 테스트에서는 셸을 / bin / false로 설정하면 작동합니다. 여전히 /opt/job.sh
로그에서 실행되는 것을 볼 수 있지만 그것은 noop이 될 것입니다.
SHELL=/bin/false
*/1 * * * * root /some/job.sh
@segaps가 제공 한 답변에서 아이디어를 얻었습니다.
비활성화하려면 :
crontab -l | awk '{print "# "$1}' | crontab
사용하려면:
crontab -l | cut -c 3- | crontab
segaps가 제공하는 솔루션의 유일한 문제점은 사용자가 이미 주석 처리 한 작업의 주석을 해제한다는 것입니다.
/tmp
손상된 경우 (그리고 crontab -e가mktemp
에서 사용하는 경우에 유용 합니다/tmp
.