linux 명령을 사용하여 단일 cron 작업을 제거하거나 삭제하는 방법은 무엇입니까?


39

아래 나열된 내 사이트에 대한 크론 작업을 만들었으며 정상적으로 작동합니다. 이 PHP 스크립트를 사용하여 모든 크론 작업을 인쇄합니다.

$cronfiles=exec('crontab -l',$output);
echo "<pre>";
print_r($output);

어떤 출력 :

[0] => 0 0 * * * wget php -q http://www.example.com/report_send.php
[1] => 0 0 * * * wget php -q http://www.example.com/event_reminder.php
[2] => 0 0 * * * wget php -q http://www.example.com/user_reminder.php
[3] => * * * * * wget php -q http://www.example.com/cleardata.php

이제 명령을 통해 서버에서 단일 cron 작업을 삭제하거나 제거하려고합니다. 예를 들어 0 0 * * * wget php -q http://www.example.com/event_reminder.php서버에서 cron 작업 " "을 ( 를) 제거하고 싶습니다 .

crontab -r내 서버에서 모든 cron 작업을 제거하는 명령을 시도했지만 특정 cron 작업을 제거하고 싶습니다.

해결책을 알려주세요.

답변:


61
  1. crontab에 작업을 추가하려면 다음을 수행하십시오.

    (crontab -u mobman -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -u mobman -
    
  2. crontab에서 작업을 제거하려면 다음을 수행하십시오.

    crontab -u mobman -l | grep -v 'perl /home/mobman/test.pl'  | crontab -u mobman -
    
  3. crontab에서 모든 것을 제거하십시오.

    crontab -r
    

아무것도 까다 롭지 않습니다 : -Linux에서 STDOUT입니다!


1
Greg : Ubuntu에 오신 것을 환영합니다! ;-)편집 내용 을 검토 하고 향후 답변의 가독성을 향상시키기 위해 편집 도움말 을 검토 할 수 있습니까 ? ;-)
Fabby

4
다음을 사용하여 crontab에 작업을 추가하려면 (crontab -u mobman -l 2> / dev / null; echo "* / 5 * * * * perl /home/mobman/test.pl") | crontab -u mobman-(참조 : stackoverflow.com/questions/4880290/… )
Yasiru G

1
@YasiruG 기존 cron 작업이없는 경우 crontab -l 2 > /dev/null메시지를보고 싶지 않은 경우에만 필요 하다고 생각 no crontab for <user>합니다. 그런데 -u mobman현재 사용자에 대한 크론 작업을 추가하려는 경우 옵션 이 필요하지 않습니다 .
baptx

21

루트 프롬프트 유형에서

crontab -e

이제 파일을 편집하고 제거하려는 행을 제거 할 수 있습니다. 해당 사용자에 대한 프롬프트가있는 경우이를 사용하여 사용자의 crontab을 편집 할 수도 있습니다.

그건 그렇고 : 나는 cronjobs을 추가하는 것을 선호합니다 /etc/crontab. 좀 더 유연 해 보입니다.


이것은 스크립트 마법사보다 더 쉽고 말이 더 합리적이지만 더 많은 마법사가되기를 바랍니다.
Jason Sebring

수동 변경에는 적합하지만 자동화에는 위의 스크립트를 확인하십시오. –
AFP_555

7

사용자보기 Cronjob

waqleh 사용자의 cronjob 을 보려면 다음 구문을 사용하십시오 .

crontab -u waqleh -l

루트 사용자 Cronjob보기

다음 명령을 입력하십시오.

crontab -l

crontab 스크립트의 내용이 나열되어야합니다.

/ etc / crontab보기

cronjob은 / etc / crontab 파일에서 실행할 수도 있습니다. 그것을 보려면 다음을 입력하십시오.

less /etc/crontab

모든 크론 작업 제거

모든 cron 작업을 중지하려는 경우에만 다음을 사용하여 완전히 제거 할 수 있습니다.

crontab -r

이렇게 하면 전체 crontab 파일제거 되므로 다른 cron 작업이 나열된 경우주의하십시오!

특정 크론 작업 제거

cron 파일을 열고 제거하려는 cron을 삭제하십시오.

crontab -e

각 줄은 크론 작업을 나타냅니다. ctrl + k를 사용하여 cron을 제거한 다음 저장하고 종료하십시오.


1
crontab -l | grep -v 'wget php -q http://www.example.com/event_reminder.php' | crontab -

crontab -l 현재 crontab 작업을 나열합니다.

grep -v 일부 라인을 필터링

crontab - 인쇄 된 모든 내용을 crontab 파일에 추가합니다.


0

crontab인수없이 실행 하고 stdin을 통해 새 crontab에 피드를 제공 할 수 있습니다 .


@qeirha .. 나는 내 서버에서 특정 cron 작업을 제거 할
anumavu

@anumavu, 그렇습니다. crontab -l이미 가지고있는 것처럼 목록에서 작업을 제거한 다음에 다시 쓰십시오 crontab.
geirha
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.