Inhaltsverzeichnis

CRON

Cron ist ein Dienst der zu einer bestimmten Zeit regelmäßig Programme startet.
Jeder Benutzer kann seine eigenen Programme starten, wenn er die Rechte dazu hat.
erstmaliges Anlegen oder Bearbeiten einer crontab:

crontab -e

typische Crontabdatei:\

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=richard@borwinius.de
TERM=linux

#Uhrzeit alle 15 Minuten angleichen
*/15 * * * * /usr/sbin/ntpdate meinNTPSRV >/dev/null 2>&1
#jeden freitag debian updaten
1 20 * * 5 su mirror "/usr/local/bin/mirror"
#jeden freitag ubuntu updaten
1 22 * * 5 su mirror "/usr/local/bin/mirrorubuntu"
#Jeden Sonntag 2Uhr1 nacht nur dateien im transferverzeichnis löschen
1 2 * * 7 find /iscsi/samba/transfer -type f -exec rm "{}" \;
#tftp-port alle 15 Minuten prüfen und Dienst evtl. neu starten
*/15 7-20 * * 1-5 netstat -ulpn | grep tftp || systemctl restart tftpd-hpa.service
#starte beim Booten mein tolles Skript mit
@reboot /usr/sbin/myscript.sh

zeige mir die Crontab nur an:

crontab -l

editiere die Crontab des Benutzers doedel:

crontab -e -u doedel

wenn die Umgebungsvariable MAILTO gesetzt ist und der MTA läuft, wird bei Ausführung eine Mail an den Absender geschickt.
schicke eine Mail nur wenn der Befehl fehlschlägt:

1 1 * * * /usr/local/sbin/meinScript.sh >/dev/null

schicke nie Mails auch wenn der Befehl fehlschlägt:

1 1 * * * /usr/local/sbin/meinScript.sh >/dev/null 2>$1

Stoppe den SSH-Dienst abends um Acht und fahre ihn morgens um Sechs wieder hoch:
erstelle dazu eine Datei /etc/cron.d/cron-ssh mit folgendem Inhalt:
Achtung! Die Datei ist in crontab -l nicht zu sehen.

0 20 * * * root /etc/init.d/ssh stop
0 6  * * * root /etc/init.d/ssh start

AT

„At“ ist ein Dienst der einmalig(!) einen Befehl ausführt.
Als erstes muss der Dienst gestartet werden:

/etc/init.d/atd start

Dann kann dem Dienst das Programm( oder Befehl) und die gewünschte Uhrzeit übergeben werden:

echo "reboot" | at 03:00
job 3 at Wed Nov 9 03:00:00 2011

Damit wird der Rechner einmalig am nächsten Tag um 03:00 Uhr neu gestartet (, wenn man das Recht dazu hat).
Zeige mir „at“-Jobs an:

atq
at -c <Jobnummer>

Lösche einen „at“-Job wieder:

atrm <Jobnummer>

Sonderfall "shutdown"

shutdown kann selbständing den Rechner zeitgesteuert herunterfahren oder neu booten.
Beispiele:
Fahre den Rechner in 5 Minuten runter:

shutdown -h +5

starte den Rechner heut nacht um 23 Uhr neu durch. Gib eine Meldung an interaktiv angemeldete Benutzer:

shutdown -r -h 23:00 'heute nacht wird der Server neu gebootet!'