Artikelformat
1. Oktober 2007

Debian Cron

Der Batchdaemon cron ist für Aufgaben zuständig, die automatisch zu einer festgelegten Zeiten stattfinden sollen.

Debian Cron Verzeichnisse

/etc/cron.hourly # Scripts in diesem Debian Cron Verzeichnis werden stündlich ausgeführt.
/etc/cron.daily # Scripts in diesem Debian Cron Verzeichnis werden täglich ausgeführt.
/etc/cron.weekly # Scripts in diesem Debian Cron Verzeichnis werden wöchentlich ausgeführt.
/etc/cron.monthly # Scripts in diesem Debian Cron Verzeichnis werden monatlich ausgeführt.

Skripte, die in diesen Verzeichnissen liegen werden im jeweiligen Rythmus ausgeführt.
Skripte müssen ausführbar sein, wie z.B. chmod 755 backup_paketlisten.sh

Bsp. Backup Skript der Debian Paketlisten
#!/bin/sh
# Aktuelles Datum für Dateinamen setzen
DATUM=`/bin/date ‘+%Y-%m-%d’`

#Erstellung der Paketliste
dpkg –get-selections “*” > /mnt/hdc/backup_packetlisten/packetliste_vom_$DATUM.txt
#Restore über dpkg –set-selections < /mnt/hdc/paketlisten/paketliste_<DATUM>.txt
#Danach ein apt-get -f install oder apt-get dselect-upgrade und alles sollte wieder wie vorher sein.
#noch ein Tipp: /etc nicht einfach zurückkopieren, sondern selektiv einzelne Config Dateien nach und nach zurückspielen, aufgrund Troubelshooting

Bsp. für ein tägliches systemsupdate (BITTE nur als Beispiel verstehen. siehe besser cron-apt)
#!/bin/sh #steht für die shell, die an die bash weiterleitet
/usr/sbin/urpmi.update ?update #update der datenbank von urpmi
/usr/sbin/urpmi ?auto ?auto-select ?update #eigentliches update des systems

weitere Anwendungsbeispiele sind:
Update System
update.sh

Atomzeituhr
ntp.sh

Debian Crontab-Datei

Die Crontab-Datei ist die eigentliche Konfigurationsdatei von cron. Sie enthält die Aufrufe für die hourly,daily und weekly-Verzeichnisse. Außerdem können hier Tasks definiert werden, die nicht auf die Muster hourly, daily, weekly passen. Die Standard Crontab sieht so aus:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root # Mialto ausstellen über Mailto=””
HOME=/
# run-parts
01 * * * * root nice -n 19 run-parts /etc/cron.hourly
02 4 * * * root nice -n 19 run-parts /etc/cron.daily
22 4 * * 0 root nice -n 19 run-parts /etc/cron.weekly
42 4 1 * * root nice -n 19 run-parts /etc/cron.monthly

Debian Crontab editieren

crontab -e

Editor wechseln:
editor=emacs # sonst kommt vi
crontab -e # editieren

Zeit zur Ausführung:

Muster:
Minuten Stunden Tage Monate Wochentage Befehl
Beispiel:
0 1 * * * Befehl… # ausführen täglich 1Uhr Morgens

Anzeigen der Debian Crontab

crontab -l # listen lassen

Editor Umstellen für cron-tab
temporär:
export editor=mcedit (oder nano,emacs) und dann:
crontab -e

langfristig:
/homeverzeichnis/.bashrc editerien:
editor=mcedit #Voreinstellung