Wie deaktiviere ich alles in crontab -l?


70

Ich möchte einfach alles anhalten. Führen Sie nichts aus, was auf aufgeführt ist crontab -l.

Antworten:


63

crontab -eKommentieren Sie dann jede Zeile aus, mit der Sie nicht laufen möchten #.


134

Sichern Sie zuerst die Crontab:

crontab -l > my_cron_backup.txt

Dann können Sie es leeren:

crontab -r

Etwas wiederherstellen:

crontab my_cron_backup.txt
crontab -l

2
Dies ist besonders hilfreich, wenn /tmpes beschädigt ist (und wenn Ihre Crontab -e verwendet mktempin /tmp.
Kevin Lee

1
+1 Schließlich hat dies für mich funktioniert. Vielen Dank
Pavan

@alex Dies sollte die akzeptierte Antwort sein
Luis Ferrao

crontab -rist, wonach ich gesucht habe. Vielen Dank !
Forzagreen

65

Haben Sie root-Zugang? Mach einfach eine Pause, Cron

sudo /etc/init.d/crond stop

Starten Sie es dann neu, wenn Sie bereit sind

sudo /etc/init.d/crond start

5
Dies setzt voraus, dass Sie crontab für alle Benutzer einschließlich root beenden möchten. Die ausgewählte Antwort und die Antwort von kubanskamac würden dies nur für den aktuellen (gewünschten?) Benutzer tun.
Kevin K

Unser Crond-Service war eingestellt worden. Dies zeigte uns in die richtige Richtung, um zu überprüfen, ob crond lief, und neu zu starten.
Paul

4
Wenn Sie auf Ubuntu sind, können Siesudo service cron stop
Joel

1
Unter Debian ist dies /etc/init.d/cron stop.
Faheem Mitha

2
@Faheem auf Debian ist es heutzutage auch service cron stop.
Stephen Kitt

10

Wenn Sie vi als Editor verwenden, rufen Sie einfach den :%s/^/#/Befehlsmodus auf. In allen Zeilen (%) wird der Zeilenanfang (^) durch einen Hash (#) ersetzt (s ///).


Wenn Sie vi nicht als Standardeditor verwenden, können Sie die Verwendung von vi like "erzwingen" EDITOR=vi; crontab -eund dann den obigen Trick anwenden.
Betlista

2
Das Kommando zum :%s/^#//
Kommentieren

3

War mit den oben genannten Optionen nicht zufrieden, da es sich nicht um Einzeiler handelte.

Etwas deaktivieren crontab -l | perl -nle 's/^([^#])/# $1/;print' | crontab

Ermöglichen crontab -l | perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab

Verwendungsbeispiel (bearbeitet, um anzuzeigen, dass Kommentare nicht deaktiviert werden)

$ 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

Wurde unter RHEL und AIX getestet und sollte sofort funktionieren, ohne dass etwas installiert werden muss


1
Kann auch nach bestimmten Details im cronjob crontab -l | suchen perl -nle 's / ^ # \ s * ([0-1 *]) / $ 1 /; print if /.+mytexttofind.+/'
Jason

Könnten Sie bitte erklären, warum Kommentare nicht betroffen sind? Welches Muster verwenden Sie, um sie zu erkennen?
Sopalajo de Arrierez

Hm, unter Debian Jessie bekomme ich folgende Fehlermeldung: crontab: usage error: file name must be specified for replace. Es scheint, dass Sie eine Datei (?) Angeben müssen, wenn Sie crontabohne Parameter arbeiten (dies ist die replaceStandardeinstellung).
Freitag,

2

In meinen begrenzten Tests funktioniert das Setzen der Shell auf / bin / false. Sie werden weiterhin /opt/job.shin Ihren Protokollen die Ausführung sehen , aber es wird ein Noop sein:

SHELL=/bin/false

*/1 * * * *    root  /some/job.sh

1

In jeder mir bekannten Unix / Linux-Variante:

mv /var/spool/cron  /var/spool/cron_is_disabled

Diese:

  • Deaktiviert die Crontabs aller Benutzer
  • aber nicht system / etc / crontab (/etc/cron.daily. etc.)
  • bleibt auch nach einem Neustart erhalten
  • ist ein Einzeiler, duh :)

1

Die Idee kam mir aus der Antwort von @segaps

Etwas deaktivieren:

crontab -l | awk '{print "# "$1}' | crontab

Ermöglichen:

crontab -l | cut -c 3- | crontab

Das einzige Problem bei der von segaps bereitgestellten Lösung ist, dass die vom Benutzer bereits kommentierten Jobs auskommentiert werden.


0

Verwenden Sie dazu nano als Editor:

sudo env EDITOR=nano crontab -e

Kommentieren Sie dann jede Zeile aus, die Sie nicht mit # ausführen möchten.

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.