OnWorks Linux- und Windows-Online-WorkStations

Logo

Kostenloses Online-Hosting für WorkStations

<Zurück | Inhalte | Weiter>

Es ist eine gute Idee, ungewöhnliche Ausführungszeiten zu wählen, da Systemjobs oft zu "runden" Stunden ausgeführt werden, wie Sie in Abschnitt 4.4.4 im nächsten Abschnitt sehen können. Zum Beispiel werden Jobs oft genau um 1 Uhr morgens ausgeführt (zB Systemindizierung zum Aktualisieren einer Standard-Locate-Datenbank), so dass die Eingabe einer Zeit von 0100 Ihr System leicht verlangsamen kann, anstatt es hochzufahren. Um zu verhindern, dass Jobs gleichzeitig ausgeführt werden, können Sie auch die Portion -Befehl, der Prozesse in eine Warteschlange stellt und die Arbeit in der Warteschlange dem System gleichmäßig zuführt, um eine übermäßige Auslastung der Systemressourcen zu verhindern. Weitere Informationen finden Sie auf den Infoseiten.


Image

4.4.4. Cron und Crontab


Das cron-System wird verwaltet von der cron Dämon. Es erhält Informationen darüber, welche Programme wann ausgeführt werden sollen, aus den crontab-Einträgen des Systems und der Benutzer. Nur der Root-Benutzer hat Zugriff auf die System-Crontabs, während jeder Benutzer nur Zugriff auf seine eigenen Crontabs haben sollte. Auf einigen Systemen haben (einige) Benutzer möglicherweise keinen Zugriff auf die Cron-Funktion.


Beim Systemstart sucht der Cron-Daemon nach / var / spool / cron / für crontab-Einträge, die nach Konten in benannt sind / etc / passwd, es sucht /etc/cron.d/ und es sucht / etc / crontab, dann verwendet diese Informationen jede Minute, um zu überprüfen, ob etwas zu tun ist. Es führt Befehle als der Benutzer aus, dem die crontab-Datei gehört, und sendet jede Befehlsausgabe per E-Mail an den Besitzer.


Auf Systemen, die Vixie cron verwenden, werden stündliche, tägliche, wöchentliche und monatliche Jobs in separaten Verzeichnissen gespeichert / Etc um den Überblick zu behalten, im Gegensatz zur Standard-UNIX-Cron-Funktion, bei der alle Aufgaben in eine große Datei eingetragen werden.


Beispiel für eine Vixie-Crontab-Datei:


[root@blob /etc]# mehr crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

STARTSEITE=/


# Laufteile

# stündlich auszuführende Befehle

01 * * * * Root-Ausführungsteile /etc/cron.hourly

# Befehle, die jeden Tag ausgeführt werden sollen

02 4 * * * root run-parts /etc/cron.daily

# Befehle, die jede Woche ausgeführt werden sollen

22 4 * * 0 root run-parts /etc/cron.weekly Befehle zur monatlichen Ausführung

42 4 1 * * root run-parts /etc/cron.monthly

[root@blob /etc]# mehr crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

STARTSEITE=/


# Laufteile

# stündlich auszuführende Befehle

01 * * * * Root-Ausführungsteile /etc/cron.hourly

# Befehle, die jeden Tag ausgeführt werden sollen

02 4 * * * root run-parts /etc/cron.daily

# Befehle, die jede Woche ausgeführt werden sollen

22 4 * * 0 root run-parts /etc/cron.weekly Befehle zur monatlichen Ausführung

42 4 1 * * root run-parts /etc/cron.monthly


ImageAlternative

Sie könnten auch die verwenden crontab -l Befehl zum Anzeigen von Crontabs.

Einige Variablen werden gesetzt, und danach folgt die eigentliche Planung, eine Zeile pro Job, beginnend mit 5 Zeit- und Datumsfeldern. Das erste Feld enthält die Minuten (von 0 bis 59), das zweite die Stunde der Ausführung (0-23), das dritte den Tag des Monats (1-31), dann die Nummer des Monats (1-12) , der letzte ist der Wochentag (0-7, 0 und 7 sind Sonntag). Ein Sternchen in diesen Feldern stellt den akzeptablen Gesamtbereich für das Feld dar. Listen sind erlaubt; Um einen Job von Montag bis Freitag auszuführen, geben Sie 1-5 in das letzte Feld ein, um einen Job am Montag, Mittwoch und Freitag auszuführen, geben Sie 1,3,5 ein.


Dann kommt der Benutzer, der die Prozesse ausführen soll, die in der letzten Spalte aufgeführt sind. Das obige Beispiel stammt aus einer Vixie-Cron-Konfiguration, in der root das Programm ausführt Laufteile in regelmäßigen Abständen, optional mit den entsprechenden Verzeichnissen. In diesen Verzeichnissen werden die tatsächlich auszuführenden Jobs zum geplanten Zeitpunkt als Shell-Skripte gespeichert, wie dieses kleine Skript, das täglich ausgeführt wird, um die von der Datenbank verwendete Datenbank zu aktualisieren lokalisieren Befehl:


billy@ahost cron.daily]$ Katze slocate.cron

# / Bin / sh

renice +19 -p $$ >/dev/null 2>&1

/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e \ "/tmp,/var/tmp, /usr/tmp,/afs,/net"

billy@ahost cron.daily]$ Katze slocate.cron

# / Bin / sh

renice +19 -p $$ >/dev/null 2>&1

/usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e \ "/tmp,/var/tmp, /usr/tmp,/afs,/net"

Benutzer sollen ihre Crontabs auf sichere Weise mit dem . bearbeiten crontab -e Befehl. Dadurch wird verhindert, dass ein Benutzer versehentlich mehr als eine Kopie seiner crontab-Datei öffnet. Der Standardeditor ist vi (Siehe Kapitel 6, aber Sie können jeden beliebigen Texteditor verwenden, wie z gwim or gedit wenn Sie sich mit einem GUI-Editor wohler fühlen.


Beim Beenden teilt Ihnen das System mit, dass eine neue crontab installiert ist.


Dieser crontab-Eintrag erinnert daran Billy um jeden Donnerstagabend in seinen Sportverein zu gehen:


billy:~> Crontab -l

# DIESE DATEI NICHT BEARBEITEN - den Master bearbeiten und neu installieren.

# (/tmp/crontab.20264 installiert am So. 20. Juli 22:35:14 2003)

billy:~> Crontab -l

# DIESE DATEI NICHT BEARBEITEN - den Master bearbeiten und neu installieren.

# (/tmp/crontab.20264 installiert am So. 20. Juli 22:35:14 2003)


# (Cron-Version -- $Id: chap4.xml,v 1.28 2007 09:19:12 bis Exp $)

38 16 * * 3 mail -s "Sportabend" billy

# (Cron-Version -- $Id: chap4.xml,v 1.28 2007 09:19:12 bis Exp $)

38 16 * * 3 mail -s "Sportabend" billy

Nachdem Sie eine neue geplante Aufgabe hinzugefügt haben, teilt Ihnen das System mit, dass eine neue Crontab installiert wurde. Sie müssen den nicht neu starten cron Daemon, damit die Änderungen wirksam werden. Im Beispiel, Billy eine neue Zeile hinzugefügt, die auf ein Backup-Skript zeigt:


billy:~> crontab -e

45 15 * * 3 mail -s "Sportabend" billy

4 4 * * 4,7 /home/billy/bin/backup.sh


<--schreiben und beenden-->

crontab: neue crontab installieren billy:~>

billy:~> crontab -e

45 15 * * 3 mail -s "Sportabend" billy

4 4 * * 4,7 /home/billy/bin/backup.sh


<--schreiben und beenden-->

crontab: neue crontab installieren billy:~>

Das backup.sh Skript wird jeden Donnerstag und Sonntag ausgeführt. Siehe Abschnitt 7.2.5 für eine Einführung in die Shell-Skripterstellung. Denken Sie daran, dass die Ausgabe von Befehlen, falls vorhanden, an den Eigentümer der crontab-Datei gesendet wird. Wenn kein E-Mail-Dienst konfiguriert ist, finden Sie die Ausgabe Ihrer Befehle möglicherweise in Ihrem lokalen Postfach.

/var/spool/mail/ , eine reine Textdatei.


Top OS Cloud Computing bei OnWorks: