diff --git a/m122/LB1/bash-pruefung-a.md b/m122/LB1/bash-pruefung-a.md index b5ba006..b9fcdf9 100644 --- a/m122/LB1/bash-pruefung-a.md +++ b/m122/LB1/bash-pruefung-a.md @@ -13,94 +13,102 @@ über Handy oder Computernetzwerk. Jeglicher Verstoss gegen diese Regeln führt umgehend zum Ausschluss aus -der Prüfung und der Note 1.\ -Name: `__________________________` Klasse: `_____________` Datum: -`_____________`\ - - --------- ------------- ------------------ - - Aufgabe max. Punkte erreichte Punkte - - 1a 1 - 1b 1 - 1c 1 - 1d 1 - 1e 1 - 2a 2 - 2b 2 - 2c 2 - 2d 2 - 3a 5 - 3b 3 - - Total 21 - --------- ------------- ------------------ +der Prüfung und der Note 1. +Name: `__________________________` Klasse: `_____________` Datum:`_____________` -\ -Cronjob - Sie wollen eines Ihre Bashskripte mit crontab automatisieren, +|Aufgabe | max. Punkte | erreichte Punkte | +|---- |---- | ---- | +|1a | 1 | +|1b | 1 | +|1c | 1 | +|1d | 1 | +|1e | 1 | +|2a | 2 | +|2b | 2 | +|2c | 2 | +|2d | 2 | +|3a | 4 | +|3b | 4 | +|---- |---- |---- +|Total | 21 | + + +**Aufgabe - 1a (1 Punkt)** - Cronjob + +Sie wollen eines Ihre Bashskripte mit crontab automatisieren, dazu haben sie einen cronjob eingerichtet welcher nach nachfolgendem Muster ausgelöst wird: ``` {.bash frame="none" mathescape=""} 0 4 * * 1 ``` +Wann wird das Skript jeweils ausgeführt? -Wann wird das Skript jeweils ausgeführt?\ -\ Antwort: -`__________________________________________________________________________________________ _____________________________________________________________________________________________________ _____________________________________________________________________________________________________`\ -\ -**Aufgabe - 1b (1 Punkt)** Wildcards - Sie führen folgendes Kommando -aus: +`_________________________________________________________________________________ __________________________________________________________________________________ __________________________________________________________________________________` + + + +**Aufgabe - 1b (1 Punkt)** - Wildcards + +Sie führen folgendes Kommando aus: ``` {.bash frame="none" mathescape=""} touch {a..c}file ``` -Erklären sie, was das Kommando genau macht:\ -\ +Erklären sie, was das Kommando genau macht: + Antwort: -`__________________________________________________________________________________________ ____________________________________________________________________________________________________ ____________________________________________________________________________________________________`\ -\ -grep - Gegeben ist folgendes Kommando: +`_________________________________________________________________________________ __________________________________________________________________________________ __________________________________________________________________________________` + + + +**Aufgabe - 1c (1 Punkt)** - grep + +Gegeben sei folgendes Kommando: ``` {.bash frame="none" mathescape=""} cat /etc/passwd | grep -v root ``` Erklären sie, was dieses Kommando genau macht (berücksichtigen sie auch -die Option `-v`):\ +die Option `-v`): Antwort: -`__________________________________________________________________________________________ ____________________________________________________________________________________________________ ____________________________________________________________________________________________________`\ +`_________________________________________________________________________________ __________________________________________________________________________________ __________________________________________________________________________________` -- Verzeichnisse wechseln\ +**Aufgabe - 1d (1 Punkt)** - Verzeichnisse wechseln + + Angenommen, sie befinden sich auf Ihre Linuxsystem unter `/root/`, geben sie die **realtive** und die **absolute** Pfadangabe an, um in das -Verzeichnis `/tmp` zu wechseln:\ -\ +Verzeichnis `/tmp` zu wechseln: + Antwort: -`________________________________________________________________________________________ ___________________________________________________________________________________________________`\ +`_________________________________________________________________________________ __________________________________________________________________________________ __________________________________________________________________________________` -- Welches Dateirecht muss zusätzlich auf einer Skriptdatei gesetzt -werden, damit diese ausgeführt werden kann? -- `0` +**Aufgabe - 1e (+1 Punkt pro richtige, -1 Punkt pro fehlende/falsche Antwort)** - Dateirechte -- `x` +Welches Dateirecht muss zusätzlich auf einer Skriptdatei gesetzt +werden, damit diese *ausgeführt* werden kann? (einkreisen) -- `w` - -- `t` - -- `s` + - `0` + - `x` + - `w` + - `t` + - `s` -- If - else\ + +## Teil 2 - Codestücke + +**Aufgabe - 2a (2 Punkte)** - If - else\ \ Nachfolgend sehen sie ein unvollständiges Skript. Sie sollen das Skript nun so ergänzen (Zeilen 3 und 5), dass dieses, falls das 1. Argument den @@ -116,8 +124,9 @@ else fi ``` -\- for in\ -\ + +**Aufgabe - 2b (2 Punkte)** - for in + Nachfolgend sehen sie ein unvollständiges Skript. Sie sollten das Skript so ergänzen, dass es den Inhalt des Verzeichnisses `/etc/` ausgibt und zwar unter der Verwendung der abgebildeten `for in` Schleife. @@ -129,8 +138,9 @@ for i in ______________ ; do done ``` -\- while\ -\ + +**Aufgabe - 2c (2 Punkte)** - while + Nachfolgend sehen sie ein unvollständiges Skript. Sie sollen das Skript so ergänzen, dass die Schleife solange läuft, wie `zahler` grösser als 10 ist (Zeile 3) und der `zaehler` zum Schluss jedes Schleifendurchlaufs @@ -145,8 +155,8 @@ while [ $zaehler _________ ]; do done ``` -\- Backup Skript\ -\ +**Aufgabe - 2d (2 Punkte)** - Backup Skript + Nachfolgend sehen sie ein unvollständiges Backupskript. Die wichtigsten Informationen, um mit `tar` ein Backup durchzuführen, werden in den Variablen `source`, `target` und `outputFile` zwischengespeichert. @@ -164,28 +174,33 @@ tar -cZf ________________ __________ -- IP-Adressen von Nameservern\ +## Teil 3 - Programmieraufgaben + +**Aufgabe - 3a (4 Punkte)** - IP-Adressen von Nameservern\ \ In der Datei `/etc/resolv.conf` sind die IPs der von Ihrem Linuxsystem verwendeten Nameserver eingetragen. Der Inhalt dieser Datei kann zB. so aussehen: - search example.com - nameserver 10.0.3.4 - nameserver 10.0.3.5 +``` + search example.com + nameserver 10.0.3.4 + nameserver 10.0.3.5 +``` Schreiben sie ein kleines Skript, welches alle IP's der Nameserver ausgibt. Mit dem obigen Beispiel sollte Ihr Skript also folgende Ausgabe erzeugen: - 10.0.3.4 - 10.0.3.5 - +``` + 10.0.3.4 + 10.0.3.5 +``` Verwenden sie dazu `cat`, `grep` und `cut`.\ -- Rechnerskript\ -\ +**Aufgabe - 3b (4 Punkte, 1 Punkt pro Zeile)** - Rechnerskript + Im nachfolgenden sehen sie ein Taschenrechnerskript, welches zwei Zahlen und eine Operation einliest und dann die beiden Zahlen mit dieser Operation verrechnet (zB. addiert) und ausgibt: @@ -201,10 +216,10 @@ if [ $opr = "+" ] then op=`expr $a + $b` echo "$op" -_______________ - _______________ - _______________ - _______________ + _______________ + _______________ + _______________ + _______________ elif [ $opr = "/" ] then op=`expr $a / $b` diff --git a/m122/LB1/bash-pruefung-c.md b/m122/LB1/bash-pruefung-c.md index 80f5dc2..8dbc1d9 100644 --- a/m122/LB1/bash-pruefung-c.md +++ b/m122/LB1/bash-pruefung-c.md @@ -204,17 +204,19 @@ Subtraktion und Multiplikation funktionieren. **Aufgabe - 3b (5 Punkte)** - resolv.conf -In der Datei `/etc/resolv.conf` kommen Domänennamen der lokalen Domains +In einer Datei `/etc/resolv.conf` kommen Domänennamen der lokalen Domains vor, zB.: +``` search example.com nameserver 10.0.1.6 nameserver 10.0.1.7 +``` Schreiben sie ein kleines Skript, welches alle Domänennamen findet und ausgibt. Mit dem obigen Inhalt sollte Ihr Skript also folgende Ausgabe erzeugen: - example.com - +``` example.com +``` Verwenden sie dazu `cat`, `grep` und `cut`. diff --git a/m150/README.md b/m150/README.md index 157c0fe..8df6891 100644 --- a/m150/README.md +++ b/m150/README.md @@ -20,7 +20,7 @@ - Wie macht man Änderungen (Syst. Update) bei "kritischen" oder "hoch verfügbaren" e-Business-Appl. bezüglich DB, Frontend, Backend / Server? - [Fragenkatalog](./docs/M150_LB1_Fragenkatalog.pdf) -## LB2 (25%, Schriftlicher Auftrag, ca. 200 min) - Tag 6: 5.10.2021 +## LB2 (25%, Schriftlicher Auftrag, ca. 200 min) - Tag 7: 5.10.2021 -> Separates Aufgabenpapier ## LB3 (50%, Vertiefungsarbeit als Dokument oder Produkt, 1-3 Personen)