Noobis.de - Wir helfen weiter !


Banner Picture
[Debian] Cronjob for Dummis PDF Drucken E-Mail
Benutzerbewertung: / 7
SchwachPerfekt 
Tutorial Übersicht - Linux Tutorials
Montag, 06. Juli 2009 um 10:01
Um wiederkehrende Aufgaben zu automatisieren, gibt es bei Linux Cronjobs.

Das sind geplante Tasks die zu festen Zeiten eine Aktion durchführen.

Das könnte sein:

 - Webseite aufrufen (eventuell um ein PHP Script zu starten)
 - Backups zu planen
 - Serverzeit zu syncronisieren
 - u.v.m.

Heute möchte ich eine kleine Übersicht zeigen, wie das denn nun geht - mit den Cronjobs.


1. Anzeige vorhandener Cronjobs

Bestehende Cronjobs anzeigen:

crontab -l


Cronjobs eines bestimmten Users anzeigen lassen:

crontab -u USER -l

2. Neuen Cronjob anlegen, Syntax Beschreibung

Nun kommen wir zu dem etwas schwierigerem Thema.
Einen neuen Cronjob anlegen und die Syntax hierfür verstehen.

Den Cronjob Editor öffnen wir mit folgendem Befehl:

crontab -e

Sofern noch kein Cronjob erstellt wurde, hat man lediglich eine Zeile, die anzeigt wie ein Cronjob augefnommen wird
(Spaltenüberschriften)

#  h  m  dom  mon   dow      command

Die Syntax eines Cronjobs:

 *   *   *   *   *        BEFEHL
 |   |   |   |   |
 |   |   |   |   |------> Wochentage     ( 0 - 7 )
 |   |   |   |
 |   |   |   |----------> Kalendermonate ( 1 - 12 )
 |   |   |
 |   |   |--------------> Tage im Monat  ( 1 - 31 )
 |   |
 |   |------------------> Stunden        ( 0 - 23 )
 |
 |----------------------> Minuten        ( 0 - 59 )

Jeder Stern bzw. Zahl wird durch ein Leerzeichen getrennt. Danach folgt der auszuführende Befehl.

3. Direkte Anwendungsbeispiele

Ein paar Beispiele zum besseren Verständnis.

Ruft jeden Tag um 00:30 Uhr ein PHP Script von einer URL auf.

30 0 * * * /usr/bin/curl http://your.domain.de/cronjob.php


Startet jede volle Stunde einen Zeitabgleich mit einem Zeitserver

0 * * * * /usr/sbin/ntpdate zeitserver.de


Startet jeden Samstag um 22:10 Uhr ein lokales Shellscript

10 22 * * 6 /usr/src/dump.sh

Führt jeden 10. des Monats um 23:45 Uhr ein MySQLDump aller Datenbanken aus
(Sicherung in eine große Datei!)

45 23 10 * * /usr/bin/mysqldump -uroot -ppassword --opt --all-databases > /usr/src/dump.sql

Hier ein Beispiel um eine Webseite pro Stunde aufzurufen:

lynx -dump http://blubb.de/index.php >/dev/null

Das ganze kann man auch in ein Shellscript verpacken, bsp. dowebcron.sh:

#!/bin/bash
lynx -dump http://blubb.de/cron.php >/dev/null

Startet jedes Jahr am 1.1. (Neujahr) um 01:00 Uhr einen Zeitabgleich mit einem Zeitserver

0 1 1 1 * /usr/sbin/ntpdate zeitserver.de

Bei Fragen oder Anregungen hierzu nutzen Sie bitte das Kommentarfeld.

Aktualisiert ( Mittwoch, 15. September 2010 um 14:09 )
 

Comments

B
i
u
Quote
Code
List
List=
[*]
URL
Name *
Email (For verification & Replies)
URL
Code   
ChronoComments by Joomla Professional Solutions
Submit Comment
Working....
Finished
Failed