Cronjob erstellen und bearbeiten
Hast du eine Aufgabe, welche regelmässig durchgeführt werden soll, oder ein Script, welches du gerne automatisch ausführen möchtest? Mit einem Cronjob lässt sich dies realisieren. Wir beschreiben das Einrichten eines Cronjobs im my.cyon anhand eines Beispiels.
In unserem Beispiel verwenden wir das Backup-Script aus dem Artikel «Backup über Shell-Script erstellen und lokal speichern» in leicht abgeänderter Form und führen dies wöchentlich, jeweils am Sonntag-Abend aus. Wir lassen dabei den Teil des lokalen Downloads aus und entfernen die manuellen Eingaben und Text-Ausgaben (du findest den Inhalt des Scripts im Abschnitt «Backup-Script aus Beispiel» dieses Artikels). Die Datei mit dem Script speichern wir im Verzeichnis /home/olivero2/backups-olivero/
und nennen diese backup-script.sh
.
- 1
- Melde dich im my.cyon an und wähle im Produktwechsler die gewünschte Domain aus.
- 2
- Wähle im Menü «Erweitert» das Untermenü «Cronjobs».
- 2
-
Um einen neuen Cronjob zu erstellen, fülle die Angaben im Abschnitt «Cronjob hinzufügen» aus.
Befehl
Im Feld «Befehl» gibt man an welcher Befehl der Cronjob ausführen soll. Um ein Script auszuführen, gibt man als erstes an über welchen Interpreter das Script aufgerufen werden soll. In unserem Beispiel ist dies ein Bash-Script. Somit verwenden wir
/usr/bin/bash
. Bei einem PHP-Script wäre dies beispielsweise/usr/bin/php
.Durch ein Leerzeichen getrennt folgt der Pfad zum Script. Wir geben also folgende Zeile im Feld «Befehl» ein:
/usr/bin/bash /home/olivero2/backups-olivero2/backup-script.sh
Häufigkeit
In diesem Abschnitt definiert man, wann genau der Befehl ausgeführt werden soll und in welchen Abständen er sich wiederholt. Man gibt an zu welcher Minute, Stunde, an welchem Tag im Monat, an welchem Monat im Jahr oder an welchem Wochentag das Script ausgeführt werden soll. Als Standard ist überall ein
*
eingetragen. Mit dieser Einstellung würde das Script jede Minute, zu jeder Stunde, an jedem Tag, in jedem Monat und an jedem Wochentag ausgeführt werden, was bedeutet, es würde minütlich das Script ausgeführt werden. Um unser Backup jeweils Sonntag-Abends zu generieren, so nutzen wir die Werte aus folgender Tabelle. Weitere Beispiele findest du auf Wikipedia. Seiten wie crontab.guru oder crontab-generator.com bieten dir bei der Wahl des Zeitpunkts noch Unterstützung.Minute Stunde Tag Monat Wochentag 0 23 * * 7 - 3
- Das Ganze sieht den nun ungefähr wie in folgendem Bild aus. Um den Cronjob zu erstellen, bestätige die Eingabe mit «Cronjob hinzufügen».
Beachte, dass das Ausführen je nach Umfang des Scripts einiges an Server-Ressourcen in Anspruch nehmen kann, und dass dabei rasch grosse Datenmengen entstehen können. Wähle den Zeitpunkt also sorgfältig aus und lege diesen bei arbeitsintensiven Vorgängen an eine Randzeit. Stelle im Falle eines Backup-Scripts sicher, dass ältere Backups wieder entfernt werden, oder archiviere diese lokal.
Cronjob bearbeiten
Hat sich der Name deines Scripts geändert oder soll der Cronjob zu einem anderen Zeitpunkt ausgeführt werden, so kannst du diesen jederzeit bearbeiten.
- 1
- Wähle dazu im Abschnitt «Aktive Cronjobs» beim gewünschten Cronjob den Link «Bearbeiten».
- 2
- Passe die Werte entsprechend an und bestätige die Änderungen über «Cronjob aktualisieren».
E-Mail-Benachrichtigung
Gib im Abschnitt «E-Mail-Adresse» im Feld «E-Mail» noch eine E-Mail-Adresse an, um eine Benachrichtigung zu erhalten, jedesmal wenn ein Cronjob ausgeführt wird. Der Inhalt der E-Mail ist dabei jener, welcher dir auch die Kommandozeile/Shell ausgibt, wenn du das Script manuell aufrufst.
Du kannst >/dev/null 2>&1
am Ende deines Befehls ergänzen um Benachrichtigungen per E-Mail für deinen Cronjob zu deaktivieren. Weitere Informationen oder Möglichkeiten findest du in folgender Dokumentation.
Cronjob wird nicht ausgeführt
Kannst du das Script manuell ausführen, der Cronjob macht seinen Dienst jedoch nicht wie gewünscht? Im Artikel «Cronjob funktioniert nicht» findest du einige Tipps zur Problemlösung.
Backup-Script aus Beispiel
Für unser Beispiel verwendeten wir als Grundlage das Script aus dem Artikel «Backup über Shell-Script erstellen und lokal speichern» und passten dieses an. Folgendes Script erstellt einen Datenbank-Dump und ein Archiv der Website-Daten in einem Verzeichnis auf dem Server.
#!/usr/bin/bash #- cyon_bkp_local.sh 0.1 #- Copyright (C) 2019 Stefan Schneider - cyon GmbH # History: # 09.05.2019 - Erste Version NAME="" # Name des Backups USER="" # Webhosting-Benutzer DATABASE="" # Datenbankname DIRECTORY_FROM="" # zu sicherndes Verzeichnis auf dem Server DIRECTORY_TO="" # Ort wo das Backup abgelegt werden soll DATABASEUSER="" # Datenbankbenutzer DB_PASSWORD="" # Passwort Datenbankbenutzer DATE=`date +%y%m%d-%H%M` BACKUPNAME="$DATE"_"$NAME"_backup # Return Codes: E_NOARGS=3 E_STDERR=1 SUCCESS=0 MIN_PARAMS=1 mysqldump -u${DATABASEUSER} -p${DB_PASSWORD} ${DATABASE} > ${DIRECTORY_TO}/${BACKUPNAME}.sql.gz tar -czf ${DIRECTORY_TO}/${BACKUPNAME}.tar.gz ${DIRECTORY_FROM} exit $SUCCESS
Beachte, dass es sich bei diesem Script lediglich um ein Anwendungsbeispiel handelt und wir dessen Vollständigkeit nicht garantieren können. Hast du Fragen zum Erstellen von Shell-Scripts, so bitten wir dich die Dokumentation der jeweiligen Script-Sprache und deren Community zur Hilfe zu nehmen.
- Kategorien
- Technische Fragen zum Webhosting