Zurück

Cronjob erstellen und bearbeiten

5 Min Lesedauer · Aktualisiert am 04.10.2021

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 Menü «Erweitert» das Untermenü «Cronjobs».
Menu «Cronjobs» im my.cyon
Menu «Cronjobs» im my.cyon
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. Die Seiten crontab.guru und corntab.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».
Cronjob hinzufügen
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».
Aktiver Cronjob bearbeiten
Aktiver Cronjob bearbeiten
2
Passe die Werte entsprechend an und bestätige die Änderungen über «Cronjob aktualisieren».
Cronjob aktualisieren
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.

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.

Was dir auch helfen könnte

Verwandte Artikel