Angenommen, ich erstelle zwei Crontab-Dateien.
/tmp/my-crontab
/root/my-alternate-crontab
Jede crontab-Datei ist so geplant, dass sie verschiedene Skripte ausführt.
Wenn ich den Cronjob starte, wird der erste durch den älteren ersetzt.
crontab -u smarak /tmp/my-crontab
crontab -u smarak /root/my-alternate-crontab
Ist das obige für einen einzelnen Benutzer möglich?
Akzeptierte Antwort:
Zwei Möglichkeiten, eine einzige Crontab zu umgehen.
Legen Sie Ihre crontab-Einträge in Dateien in einem Verzeichnis ab, wie ~/crontab.d/thisandthat.cron
, dann übernehmen Sie alle Änderungen von diesen in die System-Crontab mit:
cat ~/crontab.d/*.cron | crontab -
Die Erweiterung .cron
soll verhindern, dass versehentlich Backup-Dateien von Editoren eingeschlossen werden. Beachten Sie, dass alle in den Dateien gesetzten Variablen auch für spätere Dateien gelten, da alle Dateien miteinander verkettet sind.
Sie könnten auch etwas Ähnliches tun wie /etc/cron.hourly
und Freunde sind in Debian implementiert. Die Hauptdatei /etc/crontab
enthält Regeln wie diese:
17 * * * * root cd / && run-parts --report /etc/cron.hourly
Sie könnten dafür sorgen, dass ein einziger crontab-Eintrag mehrere Programme ausführt. Debians run-parts dir
ist ähnlich wie for f in dir/* ; do "$f" ; done
außer dass ungerade Dateinamen übersprungen werden, wiederum um zu vermeiden, dass Sicherungsdateien ausgeführt werden, die von Editoren usw. erstellt wurden.