Es gibt verschiedene Möglichkeiten, einen Job in einem Unix -System regelmäßig zu erledigen. Hier ist eine Aufschlüsselung der häufigsten Methoden und ihrer Unterschiede:
1. Crontab
* Zweck: Die am weitesten verbreitete Methode zur Planung von Aufgaben. Sie können Zeitpläne für Befehle und Skripte definieren, die zu bestimmten Zeiten oder Intervallen ausgeführt werden können.
* Wie es funktioniert:
* Sie erstellen eine Crontab -Datei, die normalerweise in Ihrem Home -Verzeichnis (`crontab -e`), das Zeilen mit Planungsinformationen und den Befehl zur Ausführung enthält.
* Jede Zeile hat sechs Felder, die dargestellt werden:Minute, Stunde, Tag des Monats, Monat, Wochentag und Kommando.
* Sie können Wildcards (`*`, `?`, `-',`/`) verwenden, um Wertebereiche für diese Felder darzustellen.
* Beispiel:
`` `bash
# Führen Sie jeden Tag um 3:00 Uhr ein Skript aus
0 3 * * * /path/to/your/script.sh
# Führen Sie alle 5 Minuten einen Befehl aus
*/5 * * * * Echo "Alle 5 Minuten läuft"
`` `
* Profis:
* Flexible Planungsoptionen.
* Einfach und gut dokumentiert.
* Kann für eine Vielzahl von Aufgaben verwendet werden.
* Nachteile:
* Erfordert Root-Zugriff, um das systemweite Crontab zu ändern.
* Benötigt einen Cron -Daemon im Hintergrund.
* Kann schwierig sein, komplexe Zeitpläne zu verwalten.
2. bei Befehl
* Zweck: Wird zur Planung von Aufgaben verwendet, um zu einer bestimmten zukünftigen Zeit auszuführen.
* Wie es funktioniert:
* Verwenden Sie den Befehl "at" mit einem Zeitstempel oder einer relativen Zeit (z. B. "morgen um 17:00 Uhr").
* Geben Sie den Befehl oder Skript ein, den Sie ausführen möchten.
* Das System speichert den Job und führt ihn zum angegebenen Zeitpunkt aus.
* Beispiel:
`` `bash
# Führen Sie morgen um 10:00 Uhr ein Drehbuch aus
morgen um 10:00 Uhr
`` `
* Profis:
* Einfach für einmalige Aufgaben zu verwenden.
* Es ist nicht erforderlich, einen Crontab -Eintrag zu erstellen.
* Nachteile:
* Nur für einzelne zukünftige Ausführungen, nicht für wiederkehrende Jobs.
* Begrenzte Planungsoptionen im Vergleich zu Crontab.
3. Systemd -Timer
* Zweck: Moderne systemd-basierte Linux-Distributionen bieten einen ausgeklügelten Ansatz für die Planung von Jobs.
* Wie es funktioniert:
* Sie erstellen eine Service-Unit-Datei (`/etc/systemd/system/your-job.timer`) mit Planungsinformationen.
* Der Service "systemd-timerd" überwacht diese Timereinheiten und löst die entsprechenden Dienste zu den angegebenen Zeiten aus.
* Beispiel:
`` `bash
[Einheit]
Beschreibung =jede Stunde ein Skript ausführen
After =network-online.target
[Timer]
OnCalendar =*-*-*00:00:00
Onactivesec =3600
[Service]
Typ =einfach
User =your-username
Execstart =/path/to/your/script.sh
`` `
* Profis:
* Integriert in Systemd und bietet umfangreiche Funktionen.
* Robuster und effizienter als Crontab.
* Ermöglicht flexible Planungsoptionen, einschließlich Zeitzonen und relativer Planung.
* Nachteile:
* Erfordert Vertrautheit mit Systemd -Einheiten -Dateien.
* Nicht so weit verbreitet wie Crontab, sondern an Popularität gewinnt.
4. Anacron
* Zweck: Wird für Jobs verwendet, die regelmäßig ausgeführt werden müssen, auch wenn das System nicht zum geplanten Zeitpunkt ausgeführt wird.
* Wie es funktioniert:
* `Anacron` Schecks auf in`/etc/anacrontab` geplante Jobs.
* Wenn das System nicht zum geplanten Zeitpunkt ausgeführt wurde, wird der Job ausgeführt, wenn es neu gestartet wird.
* Beispiel:
`` `bash
# Führen Sie alle 3 Tage ein Skript aus
3 12 * * * /path/to/your/script.sh
`` `
* Profis:
* Stellen Sie sicher, dass die Arbeitsplätze ausgeführt werden, auch wenn das System zum geplanten Zeitpunkt nicht abgelaufen ist.
* Nachteile:
* Weniger flexible Planung als Crontab.
* Nicht immer notwendig, wenn das System konsequent ausgeführt wird.
die richtige Methode auswählen:
* Crontab: Für wiederkehrende Aufgaben mit bestimmten Zeiten und Intervallen.
* at: Für einmalige Aufgaben zu einer bestimmten zukünftigen Zeit.
* Systemd -Timer: Für moderne Systeme mit Systemd, die erweiterte Planungsoptionen anbieten.
* Anacron: Für Jobs, die ausgeführt werden müssen, auch wenn das System zum geplanten Zeitpunkt nicht ausgeführt wurde.
Denken Sie immer daran, Ihre geplanten Jobs gründlich zu testen, um sicherzustellen, dass sie wie erwartet laufen und potenzielle Konflikte vermeiden.