Cronjob erstellen und bearbeiten


Haben Sie eine Aufgabe, welche regelmässig durchgeführt werden soll oder ein Script, das Sie gerne automatisch ausführen wollen? 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 jeweils wöchentlich, am Sonntag-Abend aus. Wir lassen dabei den Teil des lokalen Downloads aus und entfernen die manuellen Eingaben und Text-Ausgaben (Sie finden 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
Melden Sie sich in Ihrem my.cyon-Konto an und wählen Sie im Menü «Erweitert» das Untermenü «Cronjobs».
Menu «Cronjobs» im my.cyon
Menu «Cronjobs» im my.cyon
2

Um einen neuen Cronjob zu erstellen, füllen Sie 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 finden Sie auf Wikipedia. Die Seiten crontab.guru und corntab.com bieten Ihnen 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ätigen Sie die Eingabe mit «Cronjob hinzufügen».
Cronjob hinzufügen
Cronjob hinzufügen
Beachten Sie, dass das Ausführen je nach Umfang vom Script einiges an Server-Ressourcen in Anspruch nehmen kann und dass dabei rasch grosse Datenmengen entstehen können. Wählen Sie den Zeitpunkt also sorgfältig aus und legen Sie diesen bei arbeitsintensiven Vorgängen an eine Randzeit. Stellen Sie im Fall von einem Backup-Script sicher, dass ältere Backups wieder entfernt werden oder archivieren Sie diese lokal.

Cronjob bearbeiten

Hat der Name Ihres Scripts geändert oder soll der Cronjob zu einem anderen Zeitpunkt ausgeführt werden, so können Sie diesen einfach bearbeiten.

1
Wählen Sie dazu im Abschnitt «Aktive Cronjobs» beim gewünschten Cronjob den Link «Bearbeiten».
Aktiver Cronjob bearbeiten
Aktiver Cronjob bearbeiten
2
Passen Sie die Werte entsprechend an und bestätigen Sie die Änderungen über «Cronjob aktualisieren».
Cronjob aktualisieren
Cronjob aktualisieren

E-Mail-Benachrichtigung

Geben Sie 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 Ihnen auch die Kommandozeile/Shell ausgibt, wenn Sie das Script manuell aufrufen.

Cronjob wird nicht ausgeführt

Können Sie das Script manuell ausführen, der Cronjob macht seinen Dienst jedoch nicht wie gewünscht? Im Artikel «Cronjob funktioniert nicht» finden Sie 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
Beachten Sie, dass es sich bei diesem Script lediglich um ein Anwendungsbeispiel handelt und wir dessen Vollständigkeit nicht garantieren können. Haben Sie Fragen zum Erstellen von Shell-Scripts, so bitten wir Sie die Dokumentation der jeweiligen Script-Sprache und deren Community zur Hilfe zu nehmen.
Weitere Artikel zum Thema Weitere Artikel zum Thema Technisches