it-swarm.com.de

Wie deaktiviere ich alles in crontab -l?

Ich möchte einfach alles pausieren. Führen Sie nichts aus, was unter crontab -l.

73
Alex

crontab -e Kommentieren Sie dann jede Zeile aus, die Sie nicht mit # Ausführen möchten.

65
gregf

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
142
kubanczyk

Haben Sie Root-Zugriff? Halte einfach inne

Sudo /etc/init.d/crond stop

Starten Sie es dann neu, wenn Sie bereit sind

Sudo /etc/init.d/crond start
67
muffinista

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

10
andunix

War mit den oben genannten Optionen nicht zufrieden, da sie keine Einzeiler waren.

Deaktivierencrontab -l | Perl -nle 's/^([^#])/# $1/;print' | crontab

Zum Aktivierencrontab -l | Perl -nle 's/^#\s*([0-9*])/$1/;print' | crontab

anwendungsbeispiel (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

Getestet auf RHEL und AIX und sollte sofort funktionieren, ohne dass etwas installiert werden muss

3
segaps

In meinen eingeschränkten Tests funktioniert das Setzen der Shell auf/bin/false. Sie werden immer noch sehen, wie /opt/job.sh In Ihren Protokollen ausgeführt wird, aber es wird ein Noop sein:

Shell=/bin/false

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

In jeder mir bekannten Unix/Linux-Variante:

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

Diese:

  • deaktiviert Crontabs aller Benutzer
  • aber nicht system/etc/crontab (/etc/cron.daily. etc.)
  • bleibt während eines Neustarts bestehen
  • ist ein Einzeiler, duh :)
1
kubanczyk

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 mit der von segaps bereitgestellten Lösung besteht darin, dass die vom Benutzer bereits kommentierten Jobs auskommentiert werden.

1
Sarvsav Sharma

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