Cronjob (Debian): Unterschied zwischen den Versionen

Aus MattWiki
Keine Bearbeitungszusammenfassung
 
Keine Bearbeitungszusammenfassung
 
(10 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Anleitung für Cron
Erläuterungen und Anleitung für die Einrichtung von Cronjobs.
Zwei Möglichkeiten
 
* Allgemeine <code>/etc/crontab<-code>-Datei bearbeiten
Falls Anacron installiert ist (üblicherweise auf Desktop-Installationen), übernimmt es die Aufgaben von Cron.
* <code>crontab -e</code> verwenden, um Userspezifische Crontab-Datei zu bearbeiten
 
== Einrichtung von Cronjobs ==
Es bestehen drei Möglichkeiten der Einrichtung:
 
* Userunabhängige Cronjobs: <code>nano /etc/crontab</code> - setzt Root voraus
* Dynamische Cronjob-Erweiterungen: Ablage in <code>/etc/cron.d/</code>  
* Userspezifische Cronjobs: <code>crontab -e</code> Diese Datei wird dann unter Debian im Verzeichnis <code>/var/spool/cron/crontab/<username></code> abgelegt.


Am besten Minuten nicht auf * setzen, sonst wird der Job jede Minute ausgeführt.
Am besten Minuten nicht auf * setzen, sonst wird der Job jede Minute ausgeführt.


"*/3" bedeutet, es wird jede dritte Minute/Stunde/Tag/etc. ausgeführt.
== Intervalle für Cronjobs ==
 
*              # Jede Minute/Stunde/Tag/etc.
*/3           # Jede dritte Minute/Stunde/Tag/etc.
0,30          # Immer um 0 und 30 (z. B. Minute)
1-12,15-30    # Jede Minute von der ersten bis zur zwölften des Tages, und dann ab der 15. bis zur 30.
 
Neustart des CronDeamons ist nach der Bearbeitung der Crontab-Dateien nicht notwendig. Dateien werden jede Minute neu gelesen. Vgl. /var/log/syslog
 
== Stündliche, tägliche, wöchentliche, monatliche Jobs ==
In den folgenden Verzeichnissen können Shell-Skripte abgelegt werden, die in folgenden Intervallen ausgeführt werden:
{| class="wikitable"
!Intervall
!Verzeichnis
|-
|Stündlich
|/etc/cron.hourly
|-
|Täglich
|/etc/cron.daily
|-
|Wöchentlich
|/etc/cron.weekly
|-
|Monatlich
|/etc/cron.monthly
|}
Die tatsächliche Ausführungszeit des jeweiligen Intervalls wird mit der Crontab gesteuert:
# m h dom mon dow user command
17 * * * * root    cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
 
== Cron vs. Anacron ==
Tägliche, wöchentliche und monatliche Jobs können entweder von Cron oder von Anacron gesteuert werden, je nach dem, ob Anacron installiert ist.
 
Auf Serversystemen ist üblicherweise nur Cron installiert, auf Desktopsystemen ist oft auch Anacron installiert.
 
Die Entscheidung findet in '''/etc/crontab''' mit den folgenden Zeilen statt:
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
Falls Anacron installiert ist, wird in den o.g. Zeilen der Befehl '''run-parts''' nicht ausgeführt (?).


Neustart des CronDeamons ist nach der Bearbeitung der Crontab-Dateien nicht notwendig.
Stattdessen wird die dynamisch geladene Cron-Datei '''/etc/cron.d/anacron''' verarbeitet, die standardmäßig folgenden Inhalt hat:
# /etc/cron.d/anacron: crontab entries for the anacron package
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
30 7    * * *   root test -x /etc/init.d/anacron && /usr/sbin/invoke-rc.d anacron start >/dev/null
Anacron wird dann mit der eigenen Crontab aus '''/etc/anacrontab''' ausgeführt, die standardmäßig folgenden Inhalt hat:
# /etc/anacrontab: configuration file for anacron
<nowiki> </nowiki>
<nowiki>#</nowiki> See anacron(8) and anacrontab(5) for details.
<nowiki> </nowiki>
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
<nowiki> </nowiki>
<nowiki>#</nowiki> These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly
Die Bedeutung der Zahlen in der Daily-Zeile ist, dass diese jedes Intervall mit der Verzögerung von 5 Minuten ausgeführt wird (?).


[[Category:Linux]]
[[Category:Linux]]

Aktuelle Version vom 2. September 2017, 15:24 Uhr

Erläuterungen und Anleitung für die Einrichtung von Cronjobs.

Falls Anacron installiert ist (üblicherweise auf Desktop-Installationen), übernimmt es die Aufgaben von Cron.

Einrichtung von Cronjobs

Es bestehen drei Möglichkeiten der Einrichtung:

  • Userunabhängige Cronjobs: nano /etc/crontab - setzt Root voraus
  • Dynamische Cronjob-Erweiterungen: Ablage in /etc/cron.d/
  • Userspezifische Cronjobs: crontab -e Diese Datei wird dann unter Debian im Verzeichnis /var/spool/cron/crontab/<username> abgelegt.

Am besten Minuten nicht auf * setzen, sonst wird der Job jede Minute ausgeführt.

Intervalle für Cronjobs

*              # Jede Minute/Stunde/Tag/etc.
*/3            # Jede dritte Minute/Stunde/Tag/etc.
0,30           # Immer um 0 und 30 (z. B. Minute)
1-12,15-30     # Jede Minute von der ersten bis zur zwölften des Tages, und dann ab der 15. bis zur 30.

Neustart des CronDeamons ist nach der Bearbeitung der Crontab-Dateien nicht notwendig. Dateien werden jede Minute neu gelesen. Vgl. /var/log/syslog

Stündliche, tägliche, wöchentliche, monatliche Jobs

In den folgenden Verzeichnissen können Shell-Skripte abgelegt werden, die in folgenden Intervallen ausgeführt werden:

Intervall Verzeichnis
Stündlich /etc/cron.hourly
Täglich /etc/cron.daily
Wöchentlich /etc/cron.weekly
Monatlich /etc/cron.monthly

Die tatsächliche Ausführungszeit des jeweiligen Intervalls wird mit der Crontab gesteuert:

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Cron vs. Anacron

Tägliche, wöchentliche und monatliche Jobs können entweder von Cron oder von Anacron gesteuert werden, je nach dem, ob Anacron installiert ist.

Auf Serversystemen ist üblicherweise nur Cron installiert, auf Desktopsystemen ist oft auch Anacron installiert.

Die Entscheidung findet in /etc/crontab mit den folgenden Zeilen statt:

25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Falls Anacron installiert ist, wird in den o.g. Zeilen der Befehl run-parts nicht ausgeführt (?).

Stattdessen wird die dynamisch geladene Cron-Datei /etc/cron.d/anacron verarbeitet, die standardmäßig folgenden Inhalt hat:

# /etc/cron.d/anacron: crontab entries for the anacron package
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
30 7    * * *   root	test -x /etc/init.d/anacron && /usr/sbin/invoke-rc.d anacron start >/dev/null

Anacron wird dann mit der eigenen Crontab aus /etc/anacrontab ausgeführt, die standardmäßig folgenden Inhalt hat:

# /etc/anacrontab: configuration file for anacron
 
# See anacron(8) and anacrontab(5) for details.
 
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root
 
# These replace cron's entries
1	5	cron.daily	run-parts --report /etc/cron.daily
7	10	cron.weekly	run-parts --report /etc/cron.weekly
@monthly	15	cron.monthly	run-parts --report /etc/cron.monthly

Die Bedeutung der Zahlen in der Daily-Zeile ist, dass diese jedes Intervall mit der Verzögerung von 5 Minuten ausgeführt wird (?).