Der Eindruck mag täuschen, einiges deutet aber darauf hin, dass CronJobs zu den eher wenig beachteten Features des zeitgenössischen Web-Alltags zählen. Was schade ist, weil sie eigentlich eine der ureigenen Stärken des Computers ausspielen: die Automatisierung. Sehen wir uns einfach mal an, wie CronJobs funktionieren und wie man sie einrichtet – bestimmt fällt Ihnen früher oder später allerlei ein, das sie via CronJob abwickeln können.
Ein CronJob besteht aus zwei Dingen: der Aufgabe, die es zu erledigen gilt und einem Zeitintervalls, bis er diese Aufgabe das nächste Mal anpackt. Sagen wir, die Aufgabe besteht darin, aus einer Datenbank alles zu löschen, was die Bedingung X nicht erfüllt, dann lässt sich sich das Ganze einfach in ein Skript (PHP o. ä.) schreiben und z. B. jeden Morgen um 4:00 Uhr oder jeden Montag um 5:30 Uhr per CronJob ausführen. Ein CronJob ist also im Prinzip nichts anderes als ein Zeitschalter, der in festgelegten Fristen etwas auslöst, ohne dass irgendwer Hand anlegen muss.
CronJobs sind Teil der Unix-Welt (von »cron«, einem sog. Batch-Daemon) und waren demnach lange nichts, an das Normalsterbliche gern Hand anlegen. Zum Glück sind die Zeiten längst vorbei, in denen sich CronJobs nur mit Fummeleien im Teminalprogramm einrichten ließen: Sofern CronJobs zu den Serviceleistungen zählen, die Ihr Provider Ihnen zur Verfügung stellt, ist es sehr wahrscheinlich, dass er auch ein einfaches Konfiguraations-Tool anbietet, in das sie nur noch den genauen URL Ihres Skripts schreiben müssen und einen Zyklus auswählen.
Falls Ihr Provider-Paket keine CronJobs enthält, können Sie auf einen externen Service ausweichen, d. h. die Aufgabe/das Skript liegt auf Ihrem Server, nur der CronJob beim externen Anbieter. Innerhalb bestimmter Grenzen lassen sich solche externen CronJobs auch kostenlos buchen, z. B. bei
Zum ersten Herumprobieren können Sie auf Wunsch das folgende PHP-Skript verwenden, das ein Backup einer kompletten MySQL-Datenbank vornimmt und auf Ihrem Server speichert – kann ja bekanntlich nie schaden:
<?php
ignore_user_abort(true); // Skript auch bei Verbindungsabbruch ausführen
$file = date("Y-m-d").".sql"; // Dateiname YYYY-MM-DD.sql
// mysqldump ausführen
// BENUTZERNAME, PASSWORT, DATENBANKNAME durch eigene Angaben ersetzen
// Speicherort: Verzeichnis_des_Skripts/backup
system("/usr/bin/mysqldump -uBENUTZERNAME -pPASSWORT -h localhost DATENBANKNAME > db_backup/".$file);
?>
make_db_backup.php) und laden sie an eine geeignete Stelle auf Ihrem Server.db_backup an und stellen die Zugriffsrechte auf 777 (falls Sie das Verzeichnis anders nennen, schreiben Sie den abweichenden Namen in die Pfadangabe des Skripts).Abhängig von den internen oder externen Optionen des CronJob-Anbieters können Sie das Ganze auch noch mit Sicherungsmaßnahmen versehen (z. B. Verzeichnisschutz mit .htaccess o. ä.), davon abgesehen müssen Sie nur noch URL des Skripts und Intervall eintragen, dann brauchen Sie sich um Ihr Datenbank-Backup nicht mehr zu sorgen.