하나 이상의 사용자 크론 작업을 일시적으로 비활성화하려면 어떻게합니까? 특히, 나는 사용자의 cron 권한을 일시 중단하고 싶지 않습니다. 단지 어떤 작업도 해고하지 않습니다.
SLES 11 SP2 및 SP3 시스템에 있습니다.
하나 이상의 사용자 크론 작업을 일시적으로 비활성화하려면 어떻게합니까? 특히, 나는 사용자의 cron 권한을 일시 중단하고 싶지 않습니다. 단지 어떤 작업도 해고하지 않습니다.
SLES 11 SP2 및 SP3 시스템에 있습니다.
답변:
touch /var/spool/cron/crontabs/$username; chmod 0 /var/spool/cron/crontabs/$username
트릭을해야합니다. chmod 600
및로 복원 touch
하십시오 (파일의 mtime을 변경하여 cron을 다시로드하도록 시도하십시오).
적어도 데비안과 아마도 Vixie cron을 사용하는 경우 chmod 400 /var/spool/cron/crontabs/$username
에도 트릭을 수행합니다.이 구현은 권한이 정확히 600임을 주장하기 때문입니다. 그러나 이것은 사용자가 crontab
명령을 실행할 때까지만 지속됩니다 .
강력한 방법을 원한다면 crontab을 일시적으로 이동하거나 권한을 변경 하고 일시적으로에 추가하는 것 보다 낫다고 생각하지 않습니다 /etc/cron.deny
.
chmod
됩니다.
touch $username
뒤에 추가 했습니다 chmod
. 그러나 그것은 도움이되지 못했습니다. (btw 귀하의 포인트를 얻었습니다 cron.deny
)
chgrp root /var/spool/cron/crontabs
데비안을 사용한다면, 이것은 데비안 AFAIK에만 적용됩니다 :
cronjob의 이름에 점을 추가하면됩니다.
행동은 데비안 공식 문서에서 참조됩니다 :
https://www.debian.org/doc/debian-policy/#cron-job-file-names
cron 작업 파일 이름에는 마침표 나 더하기 문자 (. 또는 +)를 포함해서는 안됩니다. cron이 파일을 무시하게됩니다. 대신 밑줄 (_)을 사용해야합니다. + 문자.
cron
예를 들어, 시스템 유지 관리를 수행하는 동안 모든 작업을 완전히 중지하려는 경우 명령이 정상적으로 수행됩니다.
systemctl stop crond.service
그리고, 재개
systemctl start crond.service
나는 그것들을 실행하기 위해 루트 또는 휠 권한이 필요하다고 가정합니다. 필요한 경우 sudo 또는 (마지막으로) 루트를 통해 로그인하여 실행하십시오.
제기 된 특정 질문에 대해서는 지나치지 만 "원 스톱 쇼핑"을 제공하며 파일 시스템 또는 임시 파일을 가지고 놀 필요가 없습니다.
-u user
의 스위치crontab
명령을하고 넣어#
주어진 사용자에 대해 사용하지 않도록 설정하는 작업의 앞에 주석 문자를?