Wie schnell ist eine Datei überschrieben oder versehentlich gelöscht: auch auf einem Webhosting-Produkt. Jedermann weiß daher, wie wichtig regelmäßige Backups von wichtigen Daten sind, auf die man im Fall eines Falles jederzeit zurückgreifen kann – dennoch wird hier oft geschlampt. Man hat gerade keine Zeit oder die Erstellung des aktuellen Backups schlicht vergessen. Aber es gibt einen komfortablen Weg, lästige Routineaufgaben wie zum Beispiel regelmäßige Backups einfach automatisiert und zeitgesteuert durchzuführen – mit Hilfe von Cronjobs. Auf selbstadministrierten Servern wie Virtual- oder Root-Servern gehört die Erstellung von Cronjobs zum normalen Handwerkszeug der verantwortlichen Systemadministratoren. Doch den Komfort von Cronjobs können Sie auch mit Webhosting-Produkten wie z.B. den WebServern und WebServern Dedicated von Host Europe nutzen.

Was sind Cronjobs?

Cronjobs sind Skripte oder auch andere Programme, die Sie auf Ihrem (Web)Server regelmäßig zeitgesteuert aufrufen, um auf Ihrem System bestimmte Aufgabe zu einer zuvor festgelegten Zeit und zu einem festgelegten Datum ausführen zu lassen. Auf einem selbstadministrierten System geben Sie den entsprechenden Befehl über die Kommandozeile ein. Die Syntax für die richtige Terminierung von Cronjobs ist nicht ganz so einfach – insbesondere für Einsteiger. Das Format besteht aus fünf Stellen vor dem eigentlichen Befehl. Diese müssen korrekt definiert werden und auch die Leerzeichen müssen korrekt gesetzt werden.
Alle Cronjobs, die auch einem Server angelegt wurden, werden in einer Konfigurationsdatei, der sogenannten Crontab-Tabelle gespeichert. Weitere Informationen zur Crontab sowie der richtigen Terminierung von Cronjobs finden Sie unter wikipedia.org/wiki/Cron

Beispiel Cronjobs

Mit Hilfe von Cronjobs können Sie zum Beispiel folgende Aufgaben automatisiert durchführen:

  • Backups erstellen und an einem bestimmten Ort abspeichern
  • Ein Datenbank-Dump – die (Teil)Speicherung von Datenbank-Inhalten – vornehmen
  • Automatisiert E-Mails an eine bestimmte E-Mail-Adresse versenden
  • Uvm.

So lassen sich beispielsweise Performanceeinschränkungen vermeiden, indem Sie beispielsweise zeitintensive umfangreiche Backups ganz einfach in der Nacht oder am Wochenende durchführen, wenn sich nur wenige Besucher auf Ihrer Webseite aufhalten.

Cronjobs mit WebServern

Webhosting-Produkte haben in der Regel, wie zum Beispiel bei Host Europe, ein gemanagtes Betriebssystem. Das bietet Ihnen den Vorteil, dass Sie um die Systempflege Ihres Produktes praktisch gar nicht kümmern müssen. System-Patches und Sicherheits-Updates werden Ihnen direkt eingespielt. Deshalb sind Webhosting-Produkte eine ideale Wahl für Einsteiger sowie für Profis, die sich voll und ganz auf ihre Webanwendungen konzentrieren möchten.
Host Europe bietet Ihnen außerdem die Möglichkeit, auch Cronjobs auf einem gemanagten Webhosting Produkt wie z.B. einem WebServer oder Dedicated WebServer einzurichten. Die Erstellung eines Cronjobs auf einem WebServer/WebServer Dedicated erfolgt in zwei Schritten:

  1. Die auszuführende Aktion wird in einem Skript/einer Programmdatei hinterlegt und diese auf Ihren Server hochgeladen.
  2. Die zeitliche Steuerung (der Aufruf des Skripts bzw. der entsprechenden Programmdatei) erfolgt über das KIS.

Beispielskript – Datenbankbackup für eine WordPress Datenbank anfertigen

#!/bin/bash
#
# Datenbankbackups der WP DB anfertigen
#
DBNAME=dbXXXXXXX-wordpress
DBUSER=dbXXXXXXX-dbuser
DBPASS=ABCDEFGHIJKLMNOP

BACKUPFILENAME=backup-${DBNAME}-$(date +%Y-%m-%d_%H-%M-%S).sql.gz
ROOT=/is/htdocs/wpXXXXXXX_XXXXXXX
TMP=/is/htdocs/user_tmp/wpXXXXXXX_XXXXXXX
TMPFILE=${TMP}/tmp-${BACKUPFILENAME}
# Wo möchten Sie das Backup speichern
DESTDIR=${ROOT}/backup/databases
# Wie viele Tage möchten Sie das Backup aufheben
KEEPTIME=28

delete_old_backups () {
find ${DESTDIR} -type f -mtime +${KEEPTIME} -delete -ls
}

make_backup () {
mysqldump -u${DBUSER} -p${DBPASS} --quick -Q -a --allow-keywords -f \
--add-drop-table --extended-insert ${DBNAME} 2> ${TMPFILE} \
| gzip > ${DESTDIR}/${BACKUPFILENAME}
}

[ -d ${DESTDIR} ] || mkdir -p ${DESTDIR}
echo "============== $0 run delete old backups ======"
delete_old_backups;
echo "============== $0 run make backups ============"
time make_backup;
[ -f ${DESTDIR}/${BACKUPFILENAME} ] && echo $( du -hs ${DESTDIR}/${BACKUPFILENAME} ) || echo **** MISSING ${DESTDIR}/${BACKUPFILENAME} ****
echo
echo "============== $0 disk usage =================="
df -h
echo "============== $0 run end ====================="

So geht’s

Im Folgenden möchte ich Ihnen eine Anleitung geben, wie Sie bei der Erstellung von Cronjobs auf Ihrem WebServer/WebServer Dedicated vorgehen.

  • 1. Richten Sie einen SSH-Zugang zu Ihrem Produkt ein

    Loggen Sie sich zunächst in das Kunden-Informations-System (KIS) von Host Europe ein. Wählen Sie Ihr Produkt aus und klicken Sie dann auf konfigurieren.

    Gehen Sie nun unter Allgemeines zum Menüpunkt SSH-Zugang konfigurieren und vergeben Sie zur Aktivierung des SSH-Zugangs ein Passwort.

    Sobald der SSH-Zugang aktiviert ist, steht Ihnen im Menü Allgemeines die neue Funktion Cronjobs zur Verfügung.

    Hinweis:
    Bitte beachten Sie, dass es bis zu 15 Minuten dauern kann, bis die Änderungen aktiv sind.

  • 2. Legen Sie eine Standard-E-Mail-Adresse fest

    In einem zweiten Schritt müssen Sie nun eine Kontakt-Mail-Adresse hinterlegen sowie eine Standard-E-Mail-Adresse festlegen, an die Status- und Fehlermeldungen adressiert werden können.

    Haben den SSH-Zugang aktiviert und die E-Mail-Adressen angelegt, haben Sie alle Voraussetzungen dafür geschaffen, um eigene Cronjobs zu erstellen.

  • 3. Skript adressieren oder auf den Server laden

    Wählen Sie eine Programmdatei auf Ihrem Server, die Sie zeitgesteuert aufrufen möchten. Alternativ können Sie mit einem Editor auch eine Skriptdatei erstellen, in der Sie die Aktion definieren, die Sie als Cronjob ausführen lassen möchten. Diese Datei brauchen Sie dann lediglich per FTP-Programm auf Ihren WebServer/Dedicated WebServer hochladen und dann gleichfalls adressieren.

  • 4. Neuen Cronjob definieren

    Haben Sie die Skriptdate auf Ihren WebServer hochgeladen und adressiert bzw. eine Programmdatei ausgewählt, die Sie aufrufen möchten, müssen Sie den Cronjob nur noch timen. Wechseln Sie dafür wieder ins Konfigurationsmenü Ihres WebServers/Dedicated Webservers in unserem Kunden-Informations-System (KIS) und klicken Sie auf Neuen Cronjob definieren.

    Geben Sie nun den Pfad zu der Programmdatei bzw. dem Skript an, die/das Sie per Cronjob ausführen wollen. Zur besseren Übersicht sollten Sie außerdem für jeden Cronjob einen eindeutigen Namen vergeben, insbesondere dann, wenn Sie mehrere Cronjobs anlegen möchten.

  • 5. Cronjob timen

    Jetzt brauchen Sie Ihren Cronjob nur timen und aktivieren. Host Europe stellt Ihnen dafür einen einfachen und übersichtlich zu bedienenden Timer zur Verfügung. Sie können damit individuelle minutengenaue Ausführungszyklen definieren oder komfortabel per DropDown-Menü bestimmte Monate oder Wochentage als Ausführungszeitpunkte definieren.

    Per Radio-Button lassen sich Cronjobs mit einem Klick aktivieren oder deaktivieren.

Cronjobs für WebHosting-Produkte

Sie haben aktuell ein WebHosting-Paket (WebHosting Basic – Supreme) von Host Europe und möchten Cronjobs nutzen? Kein Problem. Führen Sie über das Kunden-Informations-System (KIS) einfach ein Upgrade auf ein WebServer oder WebServer-Dedicated-Produkt durch. Alle Ihre Daten und Einstellungen werden automatisch auf das neue Produkt migriert. Sie brauchen sich praktisch um nichts zu kümmern.

Weitere Informationen zu Upgrades mit automatischer Migration aller Daten und Einstellungen www.hosteurope.de/blog/automatische-datenmigration

Fazit

Cronjobs bieten Ihnen die Möglichkeit, einfache oder auch komplexeste Aufgaben ganz einfach zeitgesteuert automatisch ablaufen zu lassen. Testen Sie die Möglichkeiten und erleben Sie selbst, wieviel Zeit Sie auf diese Weise sparen können. Sie werden begeistert sein.

Cronjobs können Sie auf den WebServer-Produkten von Host Europe erstellen


Sie haben Fragen zum Thema Cronjobs für Webhosting-Produkte? Schicken Sie uns einen Kommentar, wir freuen uns auf Ihr Feedback.

Bildnachweis: Fotolia, Lizenz: Host Europe

Wolf-Dieter Fiege

Wolf-Dieter Fiege ist Senior Specialist für Content Marketing & SEO und Chefredakteur des Blogs der Host Europe GmbH, einem der größten Anbieter von Domain- und Webhosting sowie Serverprodukten in Europa.

8 thoughts on “Cronjobs für Webhosting-Produkte – Aufgaben zeitgesteuert ausführen

  1. Hallo,

    dieses Datenbank-Backup-Skript wird sicher nicht funktionieren. Die Zeichen > und & sind an 4 Stellen durch HTML-Codes ersetzt worden (> &), die dann im Skript stehen, wenn man den angezeigten Text kopiert.

    FG MichaEL

  2. Hilfreich wäre ein Beispiel mit dem man ein php-Script anschubsen könnte. Denn da fühle ich mich weiterhin auf Drittanbieter gebunden (cronjobs.de). Es ist bestimmt möglich ein bestehendes Scrips in Bash zu übersetzen aber dazu muss man das Rad stellenweise neu erfinden und eventuell den Syntax neu erlernen.

  3. Hallo WDF,
    noch einige Anmerkungen zum script:
    1. Die Schalter –quick -Q -a –allow-keywords -f –add-drop-table –extended-insert von mysqldump sind nicht notwendig, da standardmäßig an. (Siehe mysqldump –help)
    Dadurch verkürzt sich das Statement auf
    mysqldump -u${DBUSER} -p${DBPASS} ${DBNAME} …
    2. Im Fehlerfall sollte das script Ausgaben produzieren, sonst kommt es nämlich vor dass z.B. bei einem falschen Passwort eine leere Ausgabedatei erzeugt wird, die dann jeden Tag fröhlich gezippt wird und nach 28 Tagen ist dann auch die letzte noch funktionierende Datensicherung gelöscht.
    Deshalb lieber nach mysqldump den returncode abfragen und den Inhalt von ${TMPFILE} im Fehlerfall auf die Konsole ausgeben lassen. Dies wird dann automatisch per Mail an den Adressaten gesendet.
    Erst wenn alles geklappt hat, sollte die Datei dann gezippt werden.
    in etwa so:

    mysqldump …
    ret=$?
    if [ $ret -ne 0 ];then echo „Error: $ret“;cat ${TMPFILE}; exit 1;fi
    bzip2 …

  4. Ich finde mich vom Artikel vera…

    Titel „Cronjobs für Webhosting-Produkte“.
    Inhalt: „Sie haben aktuell ein WebHosting-Paket […] Kein Problem. Führen Sie […] einfach ein Upgrade auf ein WebServer oder WebServer-Dedicated-Produkt durch.“

    Eine Host-Europe-Kunde mit Webhosting-Paket, der einen Cronjob benötigt, aber dafür kein Update machen will, das den Preis verfünffacht.

    • Hallo,

      damit auf einem WebHosting-Produkt Cronjobs ausgeführt werden können, muss das Hosting-Produkt bestimmte technische Voraussetzungen erfüllen, das ist leider erst bei virtualisierten Servern möglich, die bei Host Europe WebServer heißen. Neben Cronjobs bieten diese Produkte viele weitere Vorteile, wie zum Beispiel deutlich mehr Leistung, dedizierte RAM-Ressourcen, eigene IP-Adresse, uvm. Diese Produkte haben dafür aber auch einen höheren Preis.

      Mit besten Grüßen
      Wolf-Dieter Fiege

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.