• Teilen
  • Bookmark "Cron" auf del.icio.us
  • Bookmark "Cron" auf Digg
  • Bookmark "Cron" auf Reddit
  • Bookmark "Cron" auf StumbleUpon
  • Bookmark "Cron" auf Facebook
  • Bookmark "Cron" auf Twitter
  • Bookmark "Cron" auf Slashdot

Cron

Mit Cron kann man Befehle regelmäßig ausführen. Ein Beispieleinsatzgebiet wäre der Shutdown des Systems jede Nacht oder das Ausführen von Backup-Skripten, der Download von Dateien per Skript oder einfach das Senden von Benachrichtigungen. In dieser Anleitung wird die grundlegende Konfiguration und Nutzung per Konsole erklärt.

Softwarevoraussetzungen: Editor | Paketveraltung
Schwierigkeitsgrad: Einfach
Ausgetestet mit folgenden Betriebssystemen: Ubuntu | Debian | teilweise weitere Distributionen

Achtung! sudo: In dieser Anleitung verdeutlicht der Befehl sudo, dass die folgende Codezeile mit Root-Rechten ausgeführt werden muss. In normalen Ubuntu Installationen (Root-/VServer siehe Debian) kann dies durch den Befehl sudo erreicht werden.
Bei Debian wird bei der Installation ein Passwort für den Root-Benutzer festgelegt, so kann man sich entweder direkt als Root oder als „normaler“ Benutzer mit Eingabe von su als Root einloggen (Root-Passwort benötigt) → sudo bleibt dann überflüssig!

Cron einrichten

Mittels des Befehls

user@system:~$ crontab -e        # für den eingeloggten Benutzer
user@system:~$ sudo crontab -e   # für den Benutzer root ("Befehle mit sudo")

kann man die sogenannten Tabellen editieren. Am Anfang hat man eine leere Seite vor sich, diese füllt man sich nun mit diesem Code:

#-----------------------------------------------------------------
# Shell variable for cron
SHELL=/bin/bash
# PATH variable for cron
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11
 
#M   S    T M W   Befehl
#-----------------------------------------------------------------
 
 
#-----------------------------------------------------------------

Cron-Event eintragen

Wie du siehst es mehrere Spalten wie M, T oder M, die wie folgt zu erklären sind:

1.M     2.S     3.T     4.M     5.W 

1. M=Minute (0 - 59)
2. S=Stunde (0 - 23)
3. T=Tag (1 - 31)
4. M=Monat (1 - 12)
5. W=Wochentag (0 - 7) (Sonntag ist 0 und 7)

Der Befehl halt (fährt den Rechner herunter und benötigt Root-Rechte) soll jeden Tag um sagen wir einmal 23 Uhr ausgeführt werden, das würde dann so aussehen:

user@system:~$ sudo crontab -e     # öffnet die Crontab des Users Root
#M   S    T M W   Befehl
#-----------------------------------------------------------------
 
 0    23   * * *   halt
 
#-----------------------------------------------------------------

Und schon fährt der PC jeden Abend um 23 Uhr herunter. Die fertige Cron-Tab würde dann so aussehen:

#-----------------------------------------------------------------
# Shell variable for cron
SHELL=/bin/bash
# PATH variable for cron
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11
 
#M   S    T M W   Befehl 
#-----------------------------------------------------------------
 
0    23   * * *   halt
 
#-----------------------------------------------------------------

Sonstige Zeitangaben und Beispiele

Weitere Zeitangaben

Es gibt nur die Angaben in „*“ und Zahlen sondern auch über Wörter, diese haben folgende Bedeutungen:

@reboot 	# beim Reboot
@yearly 	# jährlich
@monthly 	# monatlich
@weekly 	# wöchentlich 
@daily 	        # täglich
@hourly 	# stündlich

Beispiele

Zum besseren Verständnis hier einige Beispielzeilen einer Cron-Tab:

#-----------------------------------------------------------------
# Shell variable for cron
SHELL=/bin/bash
# PATH variable for cron
PATH=/usr/local/bin:/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11
 
#M  S    T M W   Befehl 
#-----------------------------------------------------------------
 
@reboot          tuncfg                              # startet tuncfg beim Reboot 
0  23    * * *   halt                                # fährt den Rechner jeden Tag um 23:00 Uhr herunter
@hourly          /home/user/bin/del.sh               # führt jede Stunde die Datei /home/user/bin/del.sh aus 
9   9    * * 1   /home/user/bin/dig2.sh              # führt jeden Montag um 09:09 Uhr /home/user/bin/dig2.sh aus
@daily           /home/user/bin/getipfile3.sh        # führt jeden Tag /home/user/bin/getipfile3.sh aus 
0  13    * * *   apt-get update  > /dev/null 2>&1    # lädt täglich um 13:00 Uhr die Paketlisten neu und leitet die Ausgabe ins Leere
55 23    * * *   rsnapshot daily                     # startet rsnapshot daily jeden Tag um 23:55 Uhr
40 23    * * 6   rsnapshot weekly                    # startet rsnapshot weekly jeden Samstag um 23:40 Uhr
30 23    1 * *   rsnapshot monthly                   # startet rsnapshot monthly am Ersten des Monats um 23:30 Uhr
0  10,13 * * *   backup                              # führt den Befehl backup um 10:00 und 13:00 jeden Tag aus
0  */4   * * *   backup                              # führt diesen Befehl alle 4 Stunden aus 
 
#-----------------------------------------------------------------

chrisge 2014/12/06 17:10

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
PRLGF
 
  • Teilen
  • Bookmark "Cron" auf del.icio.us
  • Bookmark "Cron" auf Digg
  • Bookmark "Cron" auf Reddit
  • Bookmark "Cron" auf StumbleUpon
  • Bookmark "Cron" auf Facebook
  • Bookmark "Cron" auf Twitter
  • Bookmark "Cron" auf Slashdot
Sonstiges
Drucken/exportieren
Archiv

Archivierter Inhalt der alten Seite