Wie entferne oder lösche ich einen einzelnen Cron-Job mit dem Linux-Befehl?


39

Ich habe für meine Site Cron-Jobs erstellt, die unten aufgeführt sind und einwandfrei funktionieren. Ich drucke alle Cronjobs mit diesem PHP-Skript:

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

Welche Ausgänge:

[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

Jetzt möchte ich einen einzelnen Cron-Job über den Befehl von meinem Server löschen oder entfernen. Zum Beispiel möchte ich den " 0 0 * * * wget php -q http://www.example.com/event_reminder.php" Cron Job vom Server entfernen .

Ich habe versucht crontab -rBefehl, der alle Cron-Jobs von meinem Server entfernt, aber ich möchte bestimmte Cron-Jobs entfernen.

Können Sie mir bitte zur Lösung helfen?

Antworten:


61
  1. So fügen Sie einen Job zu crontab hinzu:

    (crontab -u mobman -l ; echo "*/5 * * * * perl /home/mobman/test.pl") | crontab -u mobman -
    
  2. So entfernen Sie einen Job von crontab:

    crontab -u mobman -l | grep -v 'perl /home/mobman/test.pl'  | crontab -u mobman -
    
  3. Alles von crontab entfernen:

    crontab -r
    

Nichts ist knifflig: -ist STDOUT unter Linux!


1
Greg: Willkommen bei Ask Ubuntu! ;-) Könnten Sie bitte meine Änderungen und auch die Bearbeitungshilfe überprüfen , um die Lesbarkeit Ihrer Antworten in Zukunft zu verbessern ... ;-)
Fabby

4
Bitte ersetzen Sie 1. Um einen Job zu crontab hinzuzufügen, verwenden Sie (crontab -u mobman -l 2> / dev / null; geben Sie "* / 5 * * * * perl /home/mobman/test.pl" aus) | crontab -u mobman - (Ref: stackoverflow.com/questions/4880290/… )
Yasiru G

1
@YasiruG Ich denke, crontab -l 2 > /dev/nullist nur notwendig, wenn Sie die Nachricht nicht sehen möchten, no crontab for <user>wenn es keinen vorhandenen Cron-Job gibt. Übrigens benötigen wir die Option nicht, -u mobmanwenn wir den Cron-Job für den aktuellen Benutzer hinzufügen möchten.
Taufe

21

Geben Sie an einer Root-Eingabeaufforderung Folgendes ein

crontab -e

Sie können nun die Datei bearbeiten und die zu entfernende Zeile entfernen. Sie können damit auch die crontab für Benutzer bearbeiten, wenn Sie die Aufforderung für diesen Benutzer haben.

Übrigens: Ich ziehe es vor, Cronjobs hinzuzufügen /etc/crontab. Scheint mir etwas flexibler.


Dies scheint einfacher und sinnvoller zu sein als ein Skript-Assistent, aber ich wünschte, ich wäre mehr wie ein Assistent.
Jason Sebring


7

View Users Cronjob

Verwenden Sie die folgende Syntax, um den Cronjob des waqleh-Benutzers anzuzeigen:

crontab -u waqleh -l

Root-Benutzer Cronjob anzeigen

Geben Sie einfach den folgenden Befehl ein:

crontab -l

Dies sollte den Inhalt des Crontab-Skripts auflisten.

View / etc / crontab

Ein Cronjob kann auch aus der Datei / etc / crontab ausgeführt werden. Geben Sie zum Anzeigen Folgendes ein:

less /etc/crontab

Entfernen Sie alle Cron-Jobs

Wenn und nur wenn Sie alle Cron-Jobs stoppen möchten, können Sie sie vollständig entfernen mit:

crontab -r

Dadurch wird die gesamte crontab-Datei entfernt. Seien Sie also vorsichtig, wenn dort andere Cron-Jobs aufgeführt sind!

Bestimmte Cron-Jobs entfernen

Öffnen Sie die Cron-Datei und löschen Sie die Cron, die Sie entfernen möchten

crontab -e

Jede Zeile repräsentiert einen Cron Job. Sie können alle Cron entfernen, indem Sie Strg + K verwenden, dann speichern und beenden


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

crontab -l listet die aktuellen Crontab-Jobs auf

grep -v eine Zeile filtern

crontab - fügt alle gedruckten Sachen in die crontab-Datei ein.


0

Sie können crontabohne Argumente ausführen und die neue crontab über stdin füttern.


@qeirha .. Ich möchte bestimmte Cron-Jobs von meinem Server entfernen
anumavu

@anumavu, richtig, also lesen Sie es ein crontab -l, wie Sie es bereits getan haben, entfernen Sie den Job aus der Liste und schreiben Sie ihn zurück an crontab.
Geirha
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.