Literatur (Links) -...

20
2 WIS – SS 2020 - Teil 4/bash Literatur (Links) [4-1] http://www.tldp.org/LDP/Bash-Beginners-Guide/html/index.html [4-2] http://matt.might.net/articles/bash-by-example/ [4-3] https://www.thegeekstuff.com/2010/08/bash-shell-builtin-commands/ [4-4] https://www.gnu.org/software/bash/manual/html_node/index.html [4-5] http://openbook.rheinwerk-verlag.de/shell_programmierung/ shell_006_003.htm [4-6] https://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html [4-7] https://www.linuxwiki.de/crontab

Transcript of Literatur (Links) -...

Page 1: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

2WIS – SS 2020 - Teil 4/bash

Literatur (Links)

[4-1] http://www.tldp.org/LDP/Bash-Beginners-Guide/html/index.html

[4-2] http://matt.might.net/articles/bash-by-example/

[4-3] https://www.thegeekstuff.com/2010/08/bash-shell-builtin-commands/

[4-4] https://www.gnu.org/software/bash/manual/html_node/index.html

[4-5] http://openbook.rheinwerk-verlag.de/shell_programmierung/shell_006_003.htm

[4-6] https://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

[4-7] https://www.linuxwiki.de/crontab

Page 2: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

3WIS – SS 2020 - Teil 4/bash

Überblick

� Variablen

� Datentypen

� Kontrollkonstrukte

� Beispiele für Skript-Bausteine

� cron-Jobs

4WIS – SS 2020 - Teil 4/bash

Prinzipien der Shell-Programmierung I

� Shells können interaktiv arbeiten oder eine Skript ausführen.

� Die Skripte können geschachtelt aufgerufen werden.

� Skript = Ausführbare Datei mit ASCII-Kommandos

� In Linux werden die Skript-Dateien wie Kommandos behandelt, so dass für den Aufrufer kein Unterschied zu "normalen" Kommandos besteht.

Page 3: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

5WIS – SS 2020 - Teil 4/bash

Prinzipien der Shell-Programmierung II

� Variablen werden mit einem einleitenden $ markiert, z.B. $index.

� Es ist auch möglich den Namen in {} zu setzen, z.B. ${10}

� Shell-Variablen werden nicht deklariert.

� Sie besitzen den Typ des Ausdrucks der letzten Zuweisung.

� Es gibt zwei Typen für Werte:– String

– Integer

� Die Operationen unterscheiden sich etwas bei den beiden Typen.

� Shell-Variablen gelten immer nur für den betreffenden Shell; aufgerufene Programme oder andere Shells haben darauf keinen Zugriff.

6WIS – SS 2020 - Teil 4/bash

� Expliziter Aufruf eines Skriptes als Kommando:

[bash] Kommando [arg1] [arg2]... [argn]

Kommando: Dateiname des Skriptsarg1... argN: Parameter als Zeichenkette

� Parameter = Argument = Zeichenkette, die angibt womit oder wie etwas geschehen soll

� Die Zeichen innerhalb [] sind optional.

� ... zeigt mögliche Wiederholungen an.

� Beispiele:bash Beispiel a b c

Beispiel a b c

./Beispiel a b c

Syntax der Skriptsprache I

Page 4: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

7WIS – SS 2020 - Teil 4/bash

Syntax der Skriptsprache II - Erläuterungen

� Ein Skript kann auf zwei Arten ausgeführt werden:– bash Name Parameter...

wobei Name der Name einer Datei ist

– Name Parameter...wobei die Datei Name ausführbar sein muss und in der 1. Zeile eine spezielle Markierung (siehe unten) hat

� Jedes syntaktische Element wird durch ein Leerzeichen getrennt – Ausnahme: Strings in " eingeschlossen.

Dies gilt beim Aufruf, aber auch innerhalb des Skripts.Beispiele:

$abc ist ein Element (hier: eine Shell-Variable)

$ abc sind zwei Elemente

"$ abc" ist ein Element (hier: ein String)

8WIS – SS 2020 - Teil 4/bash

Der/Die Shell Bourne again Shell (bash)

� Shells sind Kommando-Interpreter mit einer eigenen Sprache.

� Die Kommandos werden von der Tastatur gelesen oder aus einer Datei.

Option Erläuterung

-x Es werden die auszuführenden Kommandos ausgegeben (Trace)

Aufruf-Parameter für bash

Page 5: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

9WIS – SS 2020 - Teil 4/bash

Parameter und Variablen I

� Zugriff auf Variablen innerhalb der Skript-DateiVariablen beginnen mit $ gefolgt von folgenden Zeichen:

Der Unterschied zwischen $* und $@ besteht darin, dass bei $@ dieAnzahl der Parameter immer erhalten bleibt, auch dann, wenn ein Blankzu einem Parameterwert gehört. Z.B. bei abc w "x y z" hat $* den Wert"w x y z" (4 Werte) und $@ den Wert 'w "x y z"' (2 Werte).

$1..$9 Parameter, z.B. $1 steht für 1. Parameter$0 $0 steht für den Namen des Skripts$* Alle Parameter von $1 beginnend zusammengesetzt$@ Alle Parameter von $1 beginnend zusammengesetzt$$ Prozessnummer des Shells$? Returncode des letzten Kommandos$# Anzahl der Parameter $Name Variable, z. B. $index

10WIS – SS 2020 - Teil 4/bash

Parameterzuordnungen I

Aufruf: bash copy bla blue

ShellnameSkriptname

1. Parameter

2. Parameter

copy: cp $1 $2

Datei Zuordnungen$0 = copy$1 = bla$2 = blue$3 =....

Ersetzen (Substituieren)

Ausführen: cp bla blue

Page 6: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

11WIS – SS 2020 - Teil 4/bash

Parameterzuordnungen II

� Auch wenn das Skript mit bash aufgerufen wird, ist der dem Namen des Skripts folgende Parameter der erste!Die Angabe des Shellprogramms selbst, z.B. bash, zählt nicht bei der Nummerierung.

� Beispiel:– bash copy von bis – copy von bis

"von" ist in beiden Fällen der 1. und "bis" immer der 2. Parameter

12WIS – SS 2020 - Teil 4/bash

Parameter und Variablen II

� $0..$9, $*, $@ und $$ sind 2-buchstabige Elemente, auch wenn kein Leerzeichen folgt!Z.B. $10 sind zwei Elemente: $1 und 0

� Es ist nur der Zugriff auf die ersten 9 Parameter mit $1..$9 möglich. Alle weiteren werden mit ${NR} addressiert.

� Mit $* bzw. $@ lässt sich die ganze Liste ansprechen.

Alle Variablen und Parameter sind immer lokal innerhalb des Shells,globale Werte können nur durch Exportieren in das Environment anKindprozesse weitergegeben werden.

Page 7: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

13WIS – SS 2020 - Teil 4/bash

Setzen von Variablen I

� Eine Shell-Variable wird nach folgendem Schema gesetzt:

Variable=Wert

● Der Wert wird in " eingeschlossen, wenn er als String (Daten) interpretiert wird.

● Vor und nach dem = dürfen keine Blanks stehen.

� Beispiele für Wert als Zeichenkette:– suffix=".txt"

– Datei=/home/blaba/file$suffix

– suffix=$suffix:$suffix

� Der Wert kann selbst wieder Variablen enthalten, die bei der Zuweisung expandiert werden.

� Soll die Expansion unterbleiben, muss die Bedeutung der $-Zeichen per Backslash ausgeschaltet werden: \$Dann wird das \ entfernt.

14WIS – SS 2020 - Teil 4/bash

� Wenn die Ausgabe eines Kommandos den Wert bilden soll, dann muss das Kommando in ` eingeschlossen werden:

Variable=`Kommando Parameter`

� Beispiele– Liste=`cat $2`

– CMD=`ps | tail -1`

� Die Ausgabe der Kommandos bildet den Wert der Variablen.

� Bitte beachten Sie, dass es drei Quotes gibt:´ ` ' Hier ist das Back-Tick genannte nach links gekippte Quote gemeint.

� Es gibt noch eine zweite Form: $(...Kommando...).

Setzen von Variablen II

Page 8: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

15WIS – SS 2020 - Teil 4/bash

Ausgeben von Shell-Variablen (Debugging)

� Mit dem Kommando echo können Texte und damit auch Parameter ausgegeben werden.

� Beispiele:echo "Hallo World!"

echo Hallo World!

echo $0 $1 $2 $3

echo $USER $HOME

echo $bla

� Auflisten der bash-Tätigkeit: set -xDies wieder aufheben: set +x

In einer Zeile beginnend mit einem + wird die Zeile vor der Ausführung so ausgegeben, wie sie ausgeführt wird, d.h. alle Variablen sind expandiert.

16WIS – SS 2020 - Teil 4/bash

Spezielle Kommentarzeile

� "#!/bin/bash" in der ersten Zeile erzwingt die Benutzung von bash

� "#!XYZ" in der 1. Zeile bedeutet: Starte Programm XYZ mit dem Filenamen als 1. Parameter

� Typische Anwendung(außerhalb der Shell-Programmierung):

– #!/usr/bin/env python3

– #!/usr/bin/php

Page 9: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

17WIS – SS 2020 - Teil 4/bash

Alias-Mechanismus

� Einfacher Makromechanismus, teilweise mit Parameter

alias Makroname=Makrokörper

� Beispiele– alias ..="cd .."

Durch Eingabe von .. wird ein Ordner höher gegangen

– alias .="echo \$PWD"Durch Eingabe von . wird dann der Name des Arbeitsordners ausgegebenDer \ schaltet die Expansion bei der Definition aus.

– unalias Name

Verwerfen des alias Name

18WIS – SS 2020 - Teil 4/bash

History-Mechanismus (Auszug)

Syntax Bedeutung

!! Letztes Kommando

!$ Letzter Parameter des letzten Kommandos

Das Abspeichern der History in einer Datei enthält das Sicherheitsloch,bei dem auch Passwörter in Kommandos später erfahren werden können.

Page 10: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

19WIS – SS 2020 - Teil 4/bash

Das IF-Konstrukt I

� test Bedingung

� [ Bedingung ]

if Condition ;then .....fi

if Condition ;then .....else .....fi

Condition kann sein

� -a Datei Frage, ob Datei existiert

� -d DateiFrage, ob Datei Ordner ist

� -f Datei Frage, ob Datei normal ist

� -r Datei Frage, ob Datei lesbar ist

Dateiabfrage kann sein

� String1 = String2

� String1 != String2

Stringvergleich kann sein

Das sind echte []Keine Option

Das gilt nur fürStrings, für Integerist die Syntax anders

20WIS – SS 2020 - Teil 4/bash

Das IF-Konstrukt II

� Der bash(1) ist in einigen Fällen etwas launisch, was die Syntax betrifft:– Vor und hinter den [] sollte jeweils ein Blank stehen, danach ein

Semikolon– Alle Schlüsselworte werden klein geschrieben.– Die then/else-Blöcke sollten mit mindestens einem Blank nach

rechts eingerückt werden.

� Abfrage auf einen leeren Parameter– Durch String-Vergleich:

if [ "a$1" = "a" ]; then

– Durch -z (True falls leer) oder -n (Länge >0): if [ -z "$1" ]; then

Page 11: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

21WIS – SS 2020 - Teil 4/bash

Beispiele für IF I

if test "abc" = "$param" ; then echo Param hat den Wert abcelse echo Param hat den Wert: $paramfi

if [ "abc" = "$param" ] ; then echo Param hat den Wert abcelse echo Param hat den Wert: $paramfi

Beide Beispielesind gleichwertig.

Es wird abgefragt, ob die Shell-Variable $param denWert "abc" hat.

22WIS – SS 2020 - Teil 4/bash

Beispiele für IF II

if test -a /bin/ls ; then echo es gibt ein ls-Kommandofi

if [ -a $2 ] ; then echo der 2. Parameter ist ein Filenamefi

In diesem Beispiel wird abgefragt, ob die Datei /bin/ls zugreifbar ist (a wie accessible).

Hier wird analog geprüft, ob der 2. Parameter $2 einenNamen einer zugreifbaren Datei enthält.

Page 12: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

23WIS – SS 2020 - Teil 4/bash

FOR-Konstrukt I

for Index in Liste do .. $Index .. done

� Wobei Index der Name einer Variablen ohne $ und Liste eine durch Blanks getrennte Liste von Zeichenketten ist.

� Die Schleife wird mit gesetzter Variablen $Index (jetzt mit $) für jedes Element in der Liste in der angegebenen Reihenfolge von links nach rechts durchlaufen.

24WIS – SS 2020 - Teil 4/bash

FOR-Konstrukt II

for Laufvar in a b c do echo $Laufvar done

Schleifenkopf

Schleifenkörper

� Der Schleifenkopf gibt den Namen der Laufvariablen sowie die Werte der Laufvariablen an.

� Der Laufvariablen wird für jeden Lauf eine Zeichenkette aus der Liste zugewiesen - es wird bei dieser Form weder addiert noch subtrahiert.

� Die Deklaration der Laufvariable im Kopf muss ohne $ erfolgen, da sie sonst zum Beginn durch nichts ersetzt wird (vor der Ausführung werden ja alle $-Variablen ersetzt.

Page 13: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

25WIS – SS 2020 - Teil 4/bash

FOR-Konstrukt III

for i in {1..12} do ... $i ... done

for i in {0..12..2} do ... $i ... done

� In dieser Variante verhält sich die FOR-Schleife so wie aus anderen Sprachen gewohnt:– Der 1. Wert nach dem { ist der Start-Wert.

– Der 2. Wert ist der End-Wert.

– Der optionale 3. Wert ist das Increment.

� Die Variable i ist hier vom Typ Integer.

26WIS – SS 2020 - Teil 4/bash

Bausteine I

for elem in `cat Liste`do echo -n print file $elem... lpr $elemdoneecho ready

rpm -i --test $1if [ $? -eq 0 ] ; then echo "$1 kann installiert werden"else echo "$1 geht hier nicht"fi

Hier wird derDatentypIntegerbenutzt.

Page 14: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

27WIS – SS 2020 - Teil 4/bash

Bausteine II

#!/bin/bash# Es wird von jeder übergebenen Datei ein Backup gemacht## Version 1 1/6/2006if [ $# -eq 0 ] ; then echo `basename $0`: Aufruf `basename $0` Datei1 Datei2... exit 1fifor fn in $@do if test -e $fn ; then cp $fn $fn.back else echo `basename $0`: Datei $fn existiert nicht fidoneexit 0

28WIS – SS 2020 - Teil 4/bash

Bausteine III

echo "Bitte Vor- und Nachnamen eingeben!"read Vor Nachecho Hallo $Vor $Nach

Page 15: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

29WIS – SS 2020 - Teil 4/bash

Bausteine IV

if [ $# -ne 2 ] ; thenecho "Usage: `basename $0` ..... "exit 1

fi

rootUID=0if [ "$UID" -ne $rootUID ] ; then

echo "must be root to run this script"exit 1

fi

30WIS – SS 2020 - Teil 4/bash

Dateien innerhalb von Skripten erzeugen I

Befehl Parameter...<<String......String

Der Teil zwischen den beiden Strings wird als Standard-Inputdem Befehl übergeben.

Achtung! Variablen wie $xyz werden ersetzt.Sollen die $ erhalten bleiben, so muss ein \ davor stehen.

Page 16: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

31WIS – SS 2020 - Teil 4/bash

Dateien innerhalb von Skripten erzeugen II

ls >/tmp/fileed /tmp/file << E-O-F:1,$s/^/ren /:w:qE-O-Fbash /tmp/file

ls >/tmp/fileed /tmp/file << E-O-F:1,\$s/^/ren /:w:qE-O-Fbash /tmp/file

Die linke Version wird wegen des Ersetzens $s durch Nichts nicht laufen.

Allen Dateinamen des aktuellen Ordners wird jeweils in ihrerZeile zum Beginn ein "ren " vorgestellt. Diese ren-Datei wird dannin bash /tmp/file ausgeführt.

32WIS – SS 2020 - Teil 4/bash

Zyklische Wiederholungen: cron

� Für cron muss die Maschine permanent laufen, z. B. auf einem Server oder einer Firewall.

� Ansonsten sollte anacron benutzt werden.

� cron ist nur für zyklische Wiederholungen geschaffen.

� Einmaliges sollte nur mit at gemacht werden, da beim Vergessen eines einmaligen cron-Jobs dieser jedes Jahr zum angegebenen Zeitpunkt abläuft, was dann für Überraschungen sorgt.

Page 17: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

33WIS – SS 2020 - Teil 4/bash

Aufbau der crontab-Datei I

Min. Std. Tag Monat Wochentag [User] Kommando %Input

� Ist eine Zeitangabe beliebig, wird ein * angegeben. � Hinter einem % steht der Input für das davor stehende

Kommando.� Als Kommando kommen Shell-Files und Kommandos mit

Parametern in Frage.� Der User wird nur in der globalen crontab angegeben.� Am Anfang der Datei können noch globale Environment-

Angaben gemacht werden: Keyword=...

* * * * * Befehl| | | | || | | | || | | | +---- Wochentag (0-7, Sonntag ist 0 oder 7)| | | +------ Monat (1-12)| | +-------- Tag (1-31)| +---------- Stunde (0-23)+------------ Minute (0-59)

34WIS – SS 2020 - Teil 4/bash

Aufbau der crontab-Datei II

SHELL=/bin/shPATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/binMAILTO=root## check scripts in cron.hourly, cron.daily, cron.weekly, and cron.monthly#*/15 * * * * root test -x /usr/lib/cron/run-crons && /usr/lib/cron/run-crons >...59 * * * * root rm -f /var/spool/cron/lastrun/cron.hourly14 0 * * * root rm -f /var/spool/cron/lastrun/cron.daily29 0 * * 6 root rm -f /var/spool/cron/lastrun/cron.weekly44 0 1 * * root rm -f /var/spool/cron/lastrun/cron.monthly

Standard-Versionder globalen crontab: /etc/crontab

Diese Spalte gibt esnur in der globalencron-Tabelle

Min. Std. Tag Monat Wochentag [User] Kommando %Input

Es wird die Existenz einer Datei geprüft undfalls dies zutrifft, der Teil hinter && ausgeführt.

Page 18: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

35WIS – SS 2020 - Teil 4/bash

Aufbau der crontab-Datei III

� Gibt es mehrere Werte pro Feld, so können diese durch eine durch Kommata getrennte Liste angegeben werden.Es dürfen keine Blanks eingeschoben werden.

� Sollen Bereiche angegeben werden, so wird ein - benutzt. Die Einheiten entsprechen der Position in der Zeile, z. B. 1. Spalte Minuten etc.Ein * steht für den gesamten Bereich.

� Soll innerhalb eines Bereichs - hier steht ein * für den gesamten Bereich - alle N Einheiten gearbeitet werden, so wird der Zyklus nach einem / angegeben,z.B. bedeutet

*/15 * * * * root test -x /usr.... alle 15 Minuten.

36WIS – SS 2020 - Teil 4/bash

Aufbau der crontab-Datei IV

� Angaben von Monatstag und Wochentag werden mit ODER verknüpftBeispiel:

* * 13 * Fri root wall … Freitag der 13….Ist falsch, da an jedem Freitag und auch an jedem 13. das wall-Kommando (write to all user) ausgeführt wird.

� Es können mehrere Abschnitte mit Environment-Definitionen benutzt werden, wobei die Priorität von vorn nach hinten geht.Beispiel:

MAILTO=root* * * * * root test -x /usr/lib/cron/run-crons && /...MAILTO=postmaster* * * * * root /usr/lib/cron/apache-crons >...

Page 19: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

37WIS – SS 2020 - Teil 4/bash

Aufbau der crontab-Datei V

� Kommentare beginnen mit einem # in der 1. Spalte

� Anzahl der crontab-Dateien:– Eine globale: /etc/crontab

– Für jeden Benutzer

� Benutzer (auch root) müssen die Tabelle über das Kommando crontab editieren:– crontab -e

Der Editor wird durch $EDITOR (Default vi) festgelegt

– Dabei wird ein Syntax-Check der Datei durchgeführt.

� Leider entstehen dadurch viele crontab-Dateien, die zur Unübersichtlichkeit führen:

crontab -u Benutzer -l

listet als root die crontab eines des Users Benutzer auf.

� crontab -l zeigt die eigene crontab.

38WIS – SS 2020 - Teil 4/bash

Beschränkung von cron

� Der User root darf alles.

� Existiert die Datei /etc/cron.allow, so dürfen nur die dort aufgeführten Benutzer crontab durchführen.

� Existiert keine solche Datei, wird die Existenz von /etc/cron.deny geprüft; falls vorhanden, dürfen alle Benutzer, deren Namen hier nicht auftauchen, crontab benutzen.

Die Beschränkungen von cron sind:

Page 20: Literatur (Links) - wi.f4.htw-berlin.dewi.f4.htw-berlin.de/users/messer/LV/WI-WIS-SS20/Folien/WIS-04/WIS … · In dieser Variante verhält sich die FOR-Schleife so wie aus anderen

39WIS – SS 2020 - Teil 4/bash

Nun wieder etwas entspannen...