Cron Jobs: Wenn Ihr Schlafplan wichtig ist

Möchten Sie um 2 Uhr morgens aufwachen, die Protokolle löschen, temporäre Dateien reinigen und jeden Tag dieselben Serverwartungsaufgaben ausführen?
Nun, ich auch nicht. Auch die Millionen von Serveradministern, die die über 14 Milliarden Server auf der ganzen Welt verwalten.
Also, hör auf den Wahnsinn – ich bitte dich!
Dafür sind Cron Jobs gebaut.
Weil wirklich nichts sagt “kompetentes Sysadmin“Als würde man schnell einschlafen und die Arbeit annehmen, die Ihre Skripte für Sie erledigen. Es heißt” Es heißt “Nutzen Sie Ihre Ressourcen.”
Mit Cron Jobs:
- Ihr Chef glaubt, dass Sie engagiert sind.
- Ihr Server weiß, dass Sie faul sind.
- Sie haben diese schöne symbiotische Beziehung namens Automatisierung.
Heute werden Sie ein Cron Jobs Profi.
Erstens, was ist ein Cron -Job? (Die nicht langweilige Version)
Ein Cron-Job ist im Wesentlichen ein Task-Scheduler in Unix-ähnlichen Betriebssystemen (Linux, MACOS), mit dem Sie Linux-Befehle zu bestimmten Zeiten und Daten automatisch ausführen können.
Stellen Sie sich das wie eine To-Do-Liste für Ihren Server vor, aber… dieser wird tatsächlich abgeschlossen.
Cron in Metaphern
Wenn Ihre Serverinfrastruktur ein Restaurant wäre:
- Der Cron Dämon Überprüft der Manager den Tagesplan.
- Der Crontab ist das Personalzuweisungsausschuss.
- Jede Cron Job ist eine Aufgabe, die einem bestimmten Mitarbeiter zu einem bestimmten Zeitpunkt zugeordnet ist.
- Der Befehl ist die tatsächliche Arbeit geleistet.
Wenn die Uhr die geplante Zeit erreicht, nimmt der Manager auf den zugewiesenen Mitarbeiter auf die Schulter und sagt: “Es ist Showtime!”
Der Mitarbeiter führt dann ihre Aufgabe ohne Frage oder Beschwerde aus.
Wenn nur wir Menschen so zuverlässig wären, wäre die Welt ein anderer Ort!
Die Anatomie eines Cron -Jobs
Jeder Cron -Job besteht aus zwei Hauptteilen:
- Wann zu rennen (der Zeitplan)
- Was zu laufen? (Der Befehl oder Skript zum Ausführen)
Der Zeitplan verwendet eine bestimmte Syntax, die auf den ersten Blick wie eine Computer -Assistentin aussieht:

Aber werfen Sie einen genaueren Blick und es wird anfangen, Sinn zu machen.
Jeder Stern kann durch bestimmte Werte, Bereiche oder Intervalle ersetzt werden, um genau den Zeitplan zu erstellen, den Sie benötigen.
Warum Server -Administratoren Cron Jobs lieben
Es gibt einen Grund, warum Server-Administratoren (sogar ich) bei der Diskussion über Cron-Jobs mit Nebelägen geraten.
Sie verwandeln die Serververwaltung in etwas, das (zumindest aus der Ferne) der Work-Life-Balance ähnelt.
1. Sie sparen dir Zeit
Erinnerst du dich an die Zeit? Das Ding, von dem du nie genug hast? Cron Jobs geben es zurück. Du hast sie eingestellt, du vergisst sie und du schaust sie so ziemlich nie an.
(Nun, bis sie brechen oder Sie den Zeitplan ändern müssen.)
2. Sie behalten die Konsistenz bei
Menschen sind inkonsistent. Wir vergessen Dinge. Wir machen Tippfehler. Wir werden von Katzenvideos abgelenkt. Cron -Jobs führen die genaue Aufgabe aus, genauso, jedes Mal – keine Ausnahmen.
3. Ihr Server schläft nie
Bei Cron -Jobs erfolgt die wesentliche Wartung rund um die Uhr rund um die Uhr, egal ob Sie wach, schlafen oder an einem Strand, der Margaritas nippt.
4. Fehlerprotokolle> menschliches Gedächtnis
Können Sie sich genau an das, was Sie getan haben, und genau dann, als Sie es getan haben, erinnern, wenn Sie manuell Aufgaben ausführen? Wahrscheinlich nicht.
Cron Jobs können jedoch so konfiguriert werden, dass sie ihre Aktivitäten protokollieren und eine Papierspur aller automatisierten Aktionen zur Fehlerbehebung und Überprüfung erstellen.
5. Sie sind für die Skalierbarkeit gebaut
Wenn Ihre Infrastruktur wächst, wird das manuelle Management von allem exponentiell schwieriger. Cron Jobs skalieren mühelos.
Das heißt, der gleiche Job kann auf mehrere Server laufen, ohne dass Sie zusätzliche Zeit von Ihnen benötigen.
Einrichten von Cron Jobs: Eine Schritt-für-Schritt-Anleitung
Genug Theorie! Sie müssen sich mit einem praktischen Cron -Job -Setup die Hände schmutzig machen.
Schritt 1: Bestätigen Sie, dass Cron installiert ist
Die meisten Unix-ähnlichen Systeme haben Cron vorinstalliert. Um zu überprüfen, ob es zur Verwendung verfügbar ist, geben Sie den folgenden Befehl ein:
crontab -e
Abhängig vom Standard -Editor öffnet der Befehl den Crontab in Ihrem spezifischen Editor. Wenn Sie CRONTAB noch nie verwendet haben, könnte es Sie gebeten, den Standard -Editor festzulegen.

Wenn das Terminal mit reagiert mit Befehl nicht gefundenSie müssen Cron mit den folgenden Befehlen installieren:
- Auf Ubuntu/Debian:
sudo apt update && sudo apt install cron
- Auf Centos/Rhel:
sudo yum install cronie
Sobald er fertig ist, starten Sie und aktivieren Sie den Cron -Service:
sudo systemctl start cronsudo systemctl enable cron
Mit dem Start Und aktivieren Befehle, wir starten den Cron -Dienst, um die Cron -Jobs auszuführen.
Und mit aktivierenWir stellen sicher, dass der Cron -Service, selbst wenn Ihr Server neu gestartet wird, automatisch damit neu gestartet wird und keine Cron -Jobs verpasst werden.
Nerd Hinweis: CentOS ruft den Cron -Service „Cond“ an, sodass Sie den Crond -Service starten und aktivieren müssen.
Schritt 2: Verständnis des Crontab
In Ordnung, öffnen Sie das Crontab oder das Crontable, um Ihre geplanten Jobs hinzuzufügen.
Jeder Benutzer im System kann eine eigene Crontab -Datei haben. Zusätzlich gibt es ein systemweites Crontab.
Um Ihr persönliches Crontab zu bearbeiten:
crontab -e
Dadurch wird Ihre Crontab -Datei in Ihrem Standardtext -Editor geöffnet. Wenn dies zum ersten Mal ist, wählen Sie die Nano Editor (Option 1), da es der anfängerfreundlichste ist.
Führen Sie für systemweite Crontabs den folgenden Befehl mit sudo-Privilegien aus:
sudo nano /etc/crontab

Schritt 3: Cron Jobsyntax
Wir haben bereits über die Grundstruktur in der Anatomie von Cron Jobs gesprochen.
Aber ein Cron -Job zu schaffen, kann manchmal verwirrend sein. Crontab.guru hilft Ihnen bei der Visualisierung der Jobpläne, während Sie sie eingeben.

Nun zum lustigen Teil – schreiben Sie unseren ersten Cron -Job. Werfen wir einen Blick auf einige gemeinsame Zeitpläne für Cron -Jobs:
Jede Minute:
* * * * /path/to/command
Jede Stunde in Minute 0:
0 * * * * /path/to/command
Jeden Tag um Mitternacht:
0 0 * * * /path/to/command
Jeden Montag um 3 Uhr morgens:
0 3 * * 1 /path/to/command
Alle 15 Minuten:
*/15 * * * * /path/to/command
Erster Tag eines jeden Monats um 6:30 Uhr:
30 6 1 * * /path/to/command
Schritt 4: Erstellen Sie Ihren ersten Cron -Job
Wechseln Sie zum Erstellen eines einfachen Backup -Cron -Jobs für Ihren Server.
Die folgende Aufgabe erstellt jeden Tag um 2 Uhr morgens eine Sicherung Ihrer Website
0 2 * * * tar -czf /path/to/backup/website-backup-$(date %Y%m%d).tar.gz /path/to/your/website
Es wird ein komprimiertes Teerarchiv Ihres Website -Verzeichnisses mit dem aktuellen Datum als Dateiname ausgeben.
Schritt 5: Speichern und überprüfen Sie
Beenden Sie nun den Herausgeber. Drücken Sie in Nano Strg x und drücken Sie dann Y.
Um Ihr aktuelles Crontab anzuzeigen und zu überprüfen, ob Ihr Job addiert wurde:
crontab -l

Das war’s! Ihr erster Cron -Job ist jetzt eingerichtet und wird zum geplanten Zeitpunkt automatisch ausgeführt.
Praktische Cron -Jobbeispiele für Website -Manager
Nachdem Sie die Grundlagen kennen, lassen Sie uns einige praktische Cron -Jobs untersuchen, die Ihr Leben als Website -Manager erheblich erleichtern können.
Datenbanksicherung
MySQL -Datenbanksicherung (täglich um 1 Uhr morgens):
0 1 * * * mysqldump -u username -p'password' database_name | gzip > /path/to/backups/db-backup-$(date %Y%m%d).sql.gz
Protokollrotation und Reinigung
Saubere Protokolle älter als 7 Tage (wöchentlich sonntags):
0 0 * * 0 find /path/to/logs -type f -name "*.log" -mtime 7 -delete
Website -Leistungsüberwachung
Überprüfen Sie die Antwortzeit der Website alle 5 Minuten:
*/5 * * * * curl -o /dev/null -s -w "%{http_code} %{time_total}sn" example.com >> /path/to/logs/website-performance.log
Inhaltsaktualisierungen
Dynamische Inhalte (jede Stunde) abrufen und aktualisieren:
0 * * * * /path/to/content-update-script.sh
E -Mail -Berichte
Senden Sie jeden Montag um 9 Uhr eine wöchentliche Verkehrszusammenfassung:
0 9 * * 1 /path/to/generate-and-email-report.sh
Sicherheitsscans
Führen Sie jeden Abend um 3 Uhr morgens ein Sicherheits -Scan -Skript aus:
0 3 * * * /path/to/security-scan.sh
Best Practices der Cron -Job: Dos und Dongen
Um sicherzustellen, dass Ihre Cron -Jobs reibungslos verlaufen und nicht mehr Probleme verursachen als sie lösen, finden Sie hier einige wichtige Best Practices.
Die dos
- Verwenden Sie immer vollständige Pfade zu Befehlen und Dateien: Ihre Cron -Umgebung hat also nicht den gleichen Weg wie Ihre Benutzerschale, also
“/usr/bin/python”
ist besser als nur Python. - Ausleitungsausgabe umleiten, um eine E -Mail -Spam zu verhindern: Standardmäßig senden Cron eine Ausgabe an den Benutzer. Hinzufügen
>/dev/null 2>&1
Ausgabe oder umleiten stattdessen in eine Protokolldatei. - Testen Sie Ihre Befehle, bevor Sie sie planen: Führen Sie Ihren Befehl manuell aus, um sicherzustellen, dass er wie erwartet funktioniert.
Fügen Sie Kommentare hinzu, um jeden Job zu erklären – Zukunft Sie werden Ihnen danken, dass Sie Ihnen dokumentieren, was jeder Cron -Job macht und warum.
Daily database backup - Added by Jane on 2023-05-150 1 * * * /path/to/backup-script.sh
Erwägen Sie, Lockfiles für langjährige Jobs zu verwenden, um zu verhindern, dass eine neue Instanz beginnt, wenn der vorherige noch läuft.
0 * * * * flock -n /tmp/script.lock /path/to/your/script.sh
Die Dongen
- Planen Sie keine ressourcenintensiven Jobs während der Hauptverkehrszeiten: Ihr Backup muss nicht mittags laufen, wenn Ihre Website am meisten am meisten ist.
- Verwenden Sie keine relativen Pfade:
“./script.sh”
wird mit ziemlicher Sicherheit in Cron scheitern. - Vergessen Sie keine Umgebungsvariablen: Cron lädt Ihre .bashrc oder .profile nicht. Stellen Sie alle erforderlichen Variablen im Crontab oder Skript ein.
- Übersehen Sie keine Protokollierung: Ohne ordnungsgemäßes Protokollieren kann das Debuggen von Cron -Jobs ein Albtraum sein.
- Übertreiben Sie es nicht: Zu viele häufige Cron -Jobs können Ihren Server überladen. Strategisch sein.
Was tun, wenn Cron Jobs schief gehen
Das einzige Mal, dass Sie auf einen Cron -Job zurückblicken müssen, ist, wenn er bricht – und wenn er bricht, diagnostiziert und beheben Sie gemeinsame Probleme.
Häufiger Problem Nr. 1: Job läuft nicht
Symptome: Ihre geplante Aufgabe scheint überhaupt nicht auszuführen.
Potenzielle Korrekturen:
- Überprüfen Sie, ob Cron Dämon läuft: Der Status “SystemCtl”
- Überprüfen Sie Ihre Crontab -SyntaX: Verwenden Sie ein Werkzeug wie Crontab.guru
- Stellen Sie den vollständigen Pfad zu ausführbaren Dingen sicher: Welcher Befehl, um die vollen Pfade zu finden
- Überprüfen Sie die Dateiberechtigungen: Skripte müssen ausführbar sein (chmod x script.sh)
Häufiges Problem Nr. 2: Jobläufe, fehl
Symptome: Der Job erledigt seine Aufgabe, erledigt aber seine Aufgabe nicht erfolgreich.
Potenzielle Korrekturen:
- Die Ausgabe in eine Protokolldatei umleiten, um Fehler anzuzeigen:
* * * * /path/to/script.sh > /path/to/script.log 2>&1
- Testen Sie den Befehl manuell mit der gleichen Umgebung
- Überprüfen Sie nach Abhängigkeiten, die möglicherweise in der Cron -Umgebung fehlen
Häufiges Problem Nr. 3: E -Mail -Überschwemmung
Symptome: Ihr Posteingang ist mit Cron -Ausgabem -E -Mails überflutet.
Potenzielle Korrekturen:
- Ausführen von Ausgang zu NULL umleiten:
>/dev/null 2>&1
- Auf einer Protokolldatei umleiten:
>/path/to/logfile.log 2>&1
Nur E -Mails zu Fehlern:
* * * * /path/to/script.sh >/dev/null || echo "Script failed" | mail -s "Cron failure" you@example.com
Häufiges Problem Nr. 4: Timing -Probleme
Symptome: Jobs laufen zu unerwarteten Zeiten oder Frequenzen.
Potenzielle Korrekturen:
- Überprüfen Sie Ihre Zeitzone-Einstellungen-Datum gegen Crons Erwartungen
- Beachten Sie DST -Änderungen, die das Timing beeinflussen könnten
- Verwenden Sie explizite Zeitrahmen anstelle von relativen, wenn Präzision wichtig ist
Fortgeschrittene Cron Job -Schreibtechniken
Wir haben uns die Grundlagen angesehen und Sie sind inzwischen ein Profi mit Cron Jobs. Dieser Abschnitt führt jedoch noch einen Schritt weiter.
Mit speziellen Zeichenfolgen
Sie müssen nicht immer Cron -Jobs mit diesen Sternchenschildern schreiben. Es gibt einige besondere Zeichenfolgen, mit denen Sie Cron -Jobs ganz einfach einrichten können.
- @yearly oder @annuell: Einmal im Jahr laufen (0 0 1 1
- @Monthly: Einmal im Monat laufen (0 0 1
- @weekly: Laufen Sie einmal pro Woche (0 0 ** 0)
- @daily oder @midnight: einmal am Tag laufen (0 0
- @Hourly: Laufen Sie einmal eine Stunde (0
- @Reboot: einmal beim Start laufen
Wenn Sie beispielsweise täglich etwas laufen möchten, schreiben Sie einfach den folgenden Befehl:
@daily /path/to/daily-backup.sh
Umgebungsvariablen in Crontab
Um zu vermeiden, dass eine Zeichenfolge immer wieder in Ihren Cron -Jobs (z. B. einem bestimmten Pfad oder Ihrer Admin -E -Mail) wiederholt wird, stellen Sie die Umgebungsvariablen zu Beginn Ihres Crontab ein.
Sie können dann die Variablen wie in Ihren Skripten oder Befehlen wiederverwenden.
SHELL=/bin/bashPATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binMAILTO=admin@example.com# This job will send errors to admin@example.com0 2 * * * /path/to/mailing_script.sh
Wenn wir die Umgebungsvariable verwenden Mailto in unserem mailing_script.shDas Skript sendet automatisch eine E -Mail an die Richtige E -Mail -Adresse.
Durch das Ändern der Administrator -E -Mail müssen nur den Wert der Mailto -Variablen geändert werden, anstatt Änderungen in allen Skripten vorzunehmen.
Jobs als verschiedene Benutzer ausführen
Wenn Sie über einen Superuser -Zugriff verfügen, können Sie das Crontab eines anderen Benutzers bearbeiten:
sudo crontab -u username -e
Verwenden von Anacron für Maschinen, die nicht immer eingeschaltet sind
Im Gegensatz zu Cron stellt Anacron sicher, dass Jobs ausgeführt werden, auch wenn der Computer während der geplanten Zeit ausgeschaltet war:
sudo apt install anacron
Bearbeiten /etc/anacrontab Um Jobs hinzuzufügen, die ausgeführt werden, wenn das System wieder online kommt.
Jobkettung für komplexe Workflows
Laufen Sie Jobs nach Abfolge:
0 1 * * * /path/to/first-script.sh && /path/to/second-script.sh
Überwachung von Cron -Jobs
Betrachten Sie für ernsthafte Serververwaltung Tools wie Cronitor, die Überwachung und Warnungen für Ihre Cron -Jobs bereitstellen.
0 * * * * cronitor exec check-12345 -- /path/to/your/script.sh
Lassen Sie uns über Kosten sprechen
Cron Jobs können nicht isoliert existieren. Sie benötigen einen Server und einen Dienst, der auf einem Server ausgeführt wird, den Sie verwalten müssen.
Wenn Sie diesen Artikel lesen, ist es sehr wahrscheinlich, dass Sie einen Server für Ihre Website oder Anwendung haben.
Wenn Sie mit Dreamhost VPS oder einem Linux-basierten Hosting-Anbieter hosten, haben Sie bereits alles, was Sie benötigen, um Ihre Serververwaltungsaufgaben zu automatisieren.
Wenn nicht, ist ein VPS $ 10/Monat alles, was Sie brauchen, insbesondere wenn Sie anfangen.
Für diejenigen, die bereits einen DreamHost -VPS ausführen, könnte der Prozess nicht einfacher sein:
- SSH in Ihren Server
- Führen Sie Crontab -e aus, um Ihre persönliche Cron -Tabelle zu bearbeiten
- Fügen Sie Ihre geplanten Aufgaben hinzu
- Speichern und lassen Sie die Automatisierung beginnen!
Ssh
Secure Shell Protocol (SSH) ist ein kryptografisches Netzwerkprotokoll für die sichere Ausführung von Diensten über ein ungesichertes Netzwerk. Es wird hauptsächlich für Befehlszeilenausführungen und Remote-Anmeldungen verwendet.
Mehr lesen
Das war’s. Die Infrastruktur, für die Sie bereits zahlen, wird plötzlich wertvoller und effizienter.
Der neue Autopilot Ihres Servers
Glückwunsch!
Sie haben die manuelle Arbeit für die Automatisierung abgeschlossen. Mit Cron Jobs, die die routinemäßigen Wartung, Backups und Überwachung bewältigen, können Sie sich darauf konzentrieren, Ihre Website und Ihr Geschäft auszubauen, anstatt den Server zu babysitten.
Und denken Sie daran, es wird ein Prozess. Die Automatisierung wird anspruchsvoller, wenn Sie immer mehr Aufgaben hinzufügen.
Beginnen Sie jedoch mit ein paar wesentlichen Cron -Jobs, überwachen Sie, wie sie durchführen, und erweitern Sie Ihre Automatisierung schrittweise, wenn Sie sich mit dem Prozess wohler machen.
Machen Sie jetzt weiter und machen Sie dieses Nickerchen, denn Sie haben sich gerade eine Menge Zeit gespeichert.