Es gibt zwei Möglichkeiten, die eigenen zu bearbeiten crontab
:
interaktiv, mit crontab -e
, die crontab
in dem von $VISUAL
oder $EDITOR
, oder angegebenen Editor öffnen
Nicht-interaktiv, mit crontab crontab.txt
, die einfach die importieren crontab
Einträge aus der Datei crontab.txt
, ersetzt die bestehende aktive crontab für den aktuellen Benutzer.
Das Problem, das Sie haben, ist, dass Sie einfach den crontab
falschen Befehl verwenden.
Das Folgende betrifft nicht interaktive Crontab-Manipulationen:
Um bestimmte Aufgaben programmgesteuert zu entfernen , können Sie beispielsweise Folgendes tun
$ crontab -l | grep -v 'PATTERN' >crontab.txt && crontab crontab.txt
Wo PATTERN
ist ein regulärer Ausdruck, der zu den Aufgaben passt, die Sie entfernen möchten? Hier crontab -l
geben Sie Ihre aktuelle crontab
.
Wenn Sie Einträge in einer Datei mit dem Namen haben crontab-fragment.txt
, die Sie aus der aktiven Crontab entfernen möchten,
$ crontab -l | grep -v -Fx -f crontab-fragment.txt >crontab.txt && crontab crontab.txt
Dies liest die aktuelle crontab und filtert (entfernt) alle Zeilen, die auch in der Datei crontab-fragment.txt
im aktuellen Verzeichnis vorkommen (unter Verwendung eines vollständigen Zeilenfolgenvergleichs). Das Ergebnis wird gespeichert crontab.txt
und von dort geladen, um die aktuelle Crontab zu ersetzen.
Um fügen Sie eine oder mehrere Aufgabe , so etwas wie
$ crontab -l | cat - crontab-fragment.txt >crontab.txt && crontab crontab.txt
Dies setzt voraus, dass die Datei crontab-fragment.txt
die Einträge enthält, die Sie hinzufügen möchten. Es liest die aktuelle Crontab, hängt die Einträge crontab-fragment.txt
an diese an und erstellt sie crontab.txt
. Die crontab.txt
Datei ersetzt dann die aktuelle crontab.