Cronjobs für Shell und PHP Scripte
Geplante Aufgaben sind sehr praktisch und auf Servern ein muss, denn was würde man ohne automatische Backups der Datenbank tun. Dies gilt für extrem viele weitere Dinge und darunter fällt zum Beispiel auch die Möglichkeit bestimmte Scripte der Shell oder eures Web-Servers (z.B. PHP Scripte) geplant auszuführen. Vor kurzem schrieb ich über ein Shell Script welches euch ermöglicht zu prüfen ob bestimmte Programme laufen und bei einem negativen Ergebnis wird dieses dann gestartet. Zum Beispiel gut wenn der Server in der Nacht aus irgendeinem Grund neu startete und ihr es nicht gemerkt habt.
crontab -e #Cronjob Bearbeitung öffnen
Im unteren Teil der News gibt es deswegen hier eine kleine Einführung in Linux Cronjobs und Beispiele für das genannte Shell Script und für PHP Scripte, denn bei letzteren muss man ein paar Sachen beachten damit alles funktioniert.
Info: Alle Tipps die ich geben sind auf eigene Gefahr zu nutzen und das folgende hat keinen Anspruch auf totale Vollständigkeit, außerdem kann es sein das ich mich an manchen Stellen vielleicht verschrieben habe. Ich habe das ganze aber relativ oft kontrolliert und hoffe das keine Fehler drin sind. Sollte jemand welche finde bitte ich um einen Kommentar, damit ich den Fehler beheben kann. 1. Cronjobs anzeigen und die Bearbeitung öffnen
cronjob -l
cronjob -u test -l
cronjob -e
cronjob -u test -e
crontab -r
Der erste Befehl zeigt euch die allgemeinen Cronjobs (des aktuellen Nutzers) an, der zweite für den Benutzer “test”. Der dritte und vierte Befehl ist analog zu den ersten beiden, nur das hier die Möglichkeit gegeben wird die Cronjob Liste zu bearbeiten. Beim bearbeiten wird der Standard Editor eures System verwendet, bei mir ist dies vi (Auflistung der Befehle open_in_new). Der 5. Befehlt löscht die Cronjob Tabelle des aktuellen Nutzers. 2. Erklärung des Cronjob Syntax
Minuten | Stunden | Tage des Monats | Monat | Tag der Woche | Wann auführen? |
10 | 1 | * | * | * | Jeden Tag um 01:10 Uhr |
0 | 2 | 1 | * | * | An jedem 1. des Monats mu 02:00 Uhr |
*/30 | * | * | * | * | Alle 30 Minuten |
0 | 0 | * | * | 1-5 | Montags bis Freitags um 00:00 Uhr |
0 | 0 | * | 1,6,12 | * | Am 1. Januar, Juni und Dezember um 00:00 Uhr |
* | * | * | * | * | Jede Minute |
> /dev/null 2>&1
Mit diesem Befehl am Ende werden eventuelle Ausgaben verworfen, bzw. direkt wieder gelöscht. 4. Tipps zur Ausführung von PHP Scripten
0 2 * * * wget --spider http://domain.de/pfad/script.php > /dev/null 2>&1
Mit diesem Befehl können PHP Scripte per Cronjob gestartet werden, Ausgaben werden dabei nicht gespeichert. Dieses Script würde dabei täglich um 02:00 Uhr Nachts starten. 5. Ausführung eines Shell Scripts
0 2 * * * /pfad/script >/dev/null 2>&1
Mit diesem Befehl lässt sich immer um 02:00 Uhr Nachts ein Script ohne Ausgabe ausführen. 6. Weitere Infos Für weitere Infos verweise ich ein weiteres Mal auf Ubuntuusers.de open_in_new und wenn jemand noch Fragen hat stehe ich natürlich gerne zur Verfügung und werde das How To bei Bedarf anpassen.