Antworten:
Der Vollständigkeit halber werden Jobs in z. B. /etc/cron.{hourly,daily,weekly,monthly} nacheinander ausgeführt. Das Run-Parts-Skript durchläuft alle Dateien in diesem Verzeichnis.
02 4 * * * root run-parts /etc/cron.daily
Sie können dies also in Kombination mit einer Namenskonvention (ähnlich der Nummerierung in /etc/init.d/rc*.d
) verwenden, um sicherzustellen, dass Jobs nacheinander ausgeführt werden.
0 * * * *
Sie zuvor gepostet haben), gibt es keine Garantie für die Reihenfolge, in der sie ausgeführt werden. Sie können parallel auf einem Mehrkernsystem ausgeführt werden. AFAIK Die Reihenfolge, in der sie ausgeführt werden, kann sogar jeden Tag anders sein. Die von mir erwähnte Namenskonvention in Kombination mit Run-Parts oder die Verwendung eines Master-Skripts, das die eigentlichen Sicherungsskripte aufruft, ist die einzige Möglichkeit, um sicherzustellen, dass Skripte in einer bestimmten Reihenfolge ausgeführt werden.
Die in cron aufgelisteten Aufgaben werden parallel ausgeführt, wie dies normalerweise bei Prozessen der Fall ist. Es gibt keine Möglichkeit, sicher zu sein, welche zuerst gestartet wird, und keine Möglichkeit, sicherzustellen, dass Aufgabe A abgeschlossen ist, bevor Aufgabe B beginnt.
Cron ist ein Daemon (Dienst), der kontinuierlich ausgeführt wird. Es werden jedoch einmal pro Minute Crontabs angezeigt.
Die genaue Reihenfolge, in der Jobs ausgeführt werden, hängt von der Implementierung des Systems ab.
Die losen Dateien, die einige Distributionen in /etc/cron.d/ ablegen, werden nach ihren Cron-Timer-Einstellungen durchsucht, da diese Dateien der normalen Crontab (5) -Syntax folgen.
In welcher Reihenfolge die einzelnen Jobs ausgeführt werden, hängt natürlich von dem Zeitplan ab, den Sie für sie festgelegt haben.
Sie werden parallel ausgeführt. Sie können die folgenden Methoden verwenden, um die Prozesse nacheinander auszuführen.
# Use a semicolon to run command2 after command1 has completed
02 4 * * * /path/to/command1 ; /path/to/command2
# Use two ampersands to run command2 after command1 has completed successfully.
02 4 * * * /path/to/command1 && /path/to/command2
# Use two vertical rules to run command2 after command1 has completed unsuccessfully.
02 4 * * * /path/to/command1 || /path/to/command2