Jak usunąć lub usunąć pojedyncze zadanie cron za pomocą komendy linux?

26

Stworzyłem zadania cron dla mojej witryny, które są wymienione poniżej i działają poprawnie. Drukuję wszystkie zadania cron za pomocą tego skryptu PHP:

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

Które wyprowadza:

  

[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

Teraz chcę usunąć lub usunąć pojedyncze zadanie cron z mojego serwera za pomocą komendy. Na przykład chcę usunąć zadanie cron " 0 0 * * * wget php -q http://www.example.com/event_reminder.php " z serwera.

Próbowałem polecenia crontab -r , które usuwa wszystkie zadania cron z mojego serwera, ale chcę usunąć konkretne zadanie cron.

Czy możesz mi pomóc w rozwiązaniu?

    
zadawane anumavu 21.01.2014, 10:09
źródło

5 odpowiedzi

37
  1. Aby dodać zadanie do pliku crontab:

    (crontab -u mobman -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -u mobman -
    
  2. Aby usunąć zadanie z crontab:

    crontab -u mobman -l | grep -v 'perl /home/mobman/test.pl'  | crontab -u mobman -
    
  3. Usuń wszystko z crontab:

    crontab -r
    

Nic nie jest trudne: - to STDOUT w Linuksie!

    
odpowiedział Greg Hanis 11.01.2016, 17:45
źródło
16

Z poziomu polecenia głównego wpisz

crontab -e

Możesz teraz edytować plik i usunąć linię, którą chcesz usunąć. Możesz także użyć tego do edycji crontabu dla użytkowników, jeśli masz monit dla tego użytkownika.

Przy okazji: wolę dodawać cronjobs do /etc/crontab . Wydaje mi się nieco bardziej elastyczny.

    
odpowiedział Rinzwind 21.01.2014, 10:34
źródło
7

Zobacz użytkowników Cronjob

Użyj następującej składni, aby wyświetlić waqleh cronjob użytkownika:

crontab -u waqleh -l

Wyświetl podgląd użytkownika root

Po prostu wpisz następujące polecenie:

crontab -l

Powinno to zawierać zawartość skryptu crontab.

Wyświetl / etc / crontab

Cronjob można również uruchomić z pliku / etc / crontab. Aby go wyświetlić, wpisz:

less /etc/crontab

Usuń wszystkie zadania cron

Jeśli i tylko jeśli chcesz zatrzymać wszystkie zadania cron, możesz je całkowicie usunąć za pomocą:

crontab -r

To usuwa cały plik crontab , więc bądź ostrożny, jeśli masz tam inne zadania crona!

Usuń określone zadania cron

Otwórz plik cron i usuń cron (y), które chcesz usunąć

crontab -e

każda linia reprezentuje zadanie cron. Możesz usunąć crona za pomocą ctrl + k, a następnie zapisać i opuścić

    
odpowiedział Waqleh 21.03.2016, 14:45
źródło
0

Możesz uruchomić crontab bez argumentów i podać nowy plik crontab przez stdin.

    
odpowiedział geirha 21.01.2014, 10:27
źródło
0
crontab -l | grep -v 'wget php -q http://www.example.com/event_reminder.php' | crontab -

crontab -l wyświetla bieżące zadania crontab

grep -v filtruje pewną linię

crontab - dodaje wszystkie wydrukowane rzeczy do pliku crontab.

    
odpowiedział Diego D 22.10.2015, 15:36
źródło

Przeczytaj inne pytania na temat tagów