• Keine Ergebnisse gefunden

Übungsblatt3:Shellskripte ÜbungenzuComputergrundlagenWS2016/2017

N/A
N/A
Protected

Academic year: 2021

Aktie "Übungsblatt3:Shellskripte ÜbungenzuComputergrundlagenWS2016/2017"

Copied!
3
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Übungen zu Computergrundlagen WS 2016/2017

Übungsblatt 3: Shellskripte

11. November 2016

Allgemeine Hinweise

• Abgabetermin für die Lösungen ist Freitag, 18.11.2016, 11:00 Uhr.

• Schickt die Lösungen bitte per Email an Euren Tutor:

Montag 11:30 – 13:00 Uhr: Julian Michalowsky (jmichalowsky@icp.uni-stuttgart.de) Montag 14:00 – 15:30 Uhr: Frank Uhlig (fuhlig@icp.uni-stuttgart.de)

Dienstag 14:00 – 15:30 Uhr: Patrick Kreissl (pkreissl@icp.uni-stuttgart.de) Dienstag 15:45 – 17:15 Uhr: Kai Szuttor (kai@icp.uni-stuttgart.de)

Donnerstag 09:45 – 11:15 Uhr: Frank Maier (fmaier@icp.uni-stuttgart.de) Donnerstag 15:45 – 17:15 Uhr: Evangelos Tzaras (etzaras@icp.uni-stuttgart.de) Aufgabe 3.1: Bilder per Email (5 Punkte)

Betrachte das folgende Skript (/group/cgl/2016/03/doit.sh):

#!/ bin / b a s h

#

# A u s e f u l s c r i p t - if it wasn ’ t so b u g g y ...

#

# set v a r i a b l e s d e f a u l t d i r =.

m a x _ s i z e = 640 x 6 4 0

# c o m m a n d l i n e h a n d l i n g dir = $1

if [ - z $ d i r ] ; t h e n dir = $ d e f a u l t d i r fi

# f i n d i m a g e s

i m a g e s = $ ( ls $ d i r /*. jpg ) if [ - z " $ i m a g e s " ];

e c h o " No i m a g e s in $ d i r !"

e x i t 2 fi

# r e s i z e i m a g e s

for i m a g e in $ i m a g e s do

d i r n a m e = $ ( d i r n a m e $ i m a g e )

b a s e n a m e = $ ( b a s e n a m e $ i m a g e . jpg )

n e w i m a g e = $ d i r n a m e / $ { b a s e n a m e } _ s m a l l . jpg e c h o " $ i m a g e - > $ n e w i m a g e "

c o n v e r t $ i m a g e - r e s i z e m a x _ s i z e $ n e w i m a g e fi

1

(2)

Als Argument liest das Skript einen Verzeichnisnamen. In diesem Verzeichnis sollten sich einige .jpg-Bilder befinden.

3.1.1Welche Aufgabe soll das Shellskript vermutlich erfüllen? Wofür ist es nützlich? (1 Punkt)

3.1.2Kopiert Euch das Shellskript in Euer Heimatverzeichnis. Was müsst Ihr machen, um diese Datei durch./doit.sh ausführen zu können? (1 Punkt)

3.1.3 Ruft das Skript wie folgt auf:

./ d o i t . sh / g r o u p / cgl / 2 0 1 6 / 0 3 / i m a g e s

Wenn Ihr diesen Befehl ausführt, gibt es verschiedene Fehler. Dabei gibt es zwei Arten von Fehlern: einerseits Fehler im Skript, die seine Ausführung verhindern, andererseits wird das Skript aber auch nicht so verwendet, wie der Autor sich dies wohl gedacht hat.

Korrigiert die Fehler im Skript und gebt das korrigierte Skript als Lösung ab! (2 Punkte) Hinweise:

Nicht immer geben die Fehlermeldungen einen direkten Hinweis darauf, was schief gelau- fen ist. Alle Fehler in diesem Skript können durch das Hinzufügen oder Verschieben von wenigen Zeichen korrigiert werden.

Ein erstaunlich nützliches Werkzeug zur Fehlersuche in solchen Skripten ist ein guter Edi- tor, der die unterschiedlichen Elemente eines Shellskripts unterschiedlich einfärbt („Syntax- Highlighting“). Schaut Euch genau an, wie der Editor die verschiedenen Elemente einfärbt, und welche davon nicht wie erwartet aussehen.

3.1.4 Auf dem gegebenen Verzeichnis /group/cgl/2016/03/images kann das Skript so nicht funktionieren. Warum? (1 Punkt)

Aufgabe 3.2: Webmaster (5 Punkte)

Ein typischer Webserver erzeugt Logdateien, die jeden Zugriff durch Zeilen der Form

127.0.0.1 - - [24/Mar/2011:16:56:12 -100] ‘‘GET http://www.google.de HTTP/1.1’’ 200 2459 IP - - [Timestamp Zone] ‘‘Command Webpage Format’’ Returncode size

dokumentieren. Hieraus lässt sich sehr gut analysieren, welche Seite wie oft von wem aufgerufen wurde.

Schreibt ein Skript analyze_log.sh, das als einzigen Parameter den Namen einer solchen Logdatei bekommt. Danach soll es zu dieser Logdatei folgendes ausgeben:

• Wie vieleverschiedeneWebseiten angefragt wurden. Die Webseite steht immer in der 7. Spalte (jedes Leerzeichen trennt Spalten voneinander).

• Wie oft jede Webseite aufgerufen wurde. Dazu sucht Euch zunächst heraus, welche Webseiten es überhaupt gibt. Anschließend schreibt eine Schleife, die für jede Webseite die Anzahl der Aufrufe ausgibt.

Hinweise:

• Um Euer Skript zu testen, könnt Ihr die Datei /group/cgl/2016/03/server.logverwenden.

• Wenn Ihr in Schritten vorgeht, ist es einfacher.

• Hilfreiche Werkzeuge für diese Aufgabe sind sort,wc,grep,awk(undman)

2

(3)

• Mithilfe von awk können zum Beispiel einzelne Spalten aus einer Datei gelesen werden. Der folgende Programmausschnitt gibt die 2. Spalte aus der Datei Textdatei wieder:

awk ’{ p r i n t $2 } ’ T e x t d a t e i

3

Referenzen

ÄHNLICHE DOKUMENTE

Die folgenden Fehler sind in der Skriptversion vom 30.7.. Dieser Fehler taucht gleich zwei Mal auf, jeweils in der ersten und der dritten abgesetzten Formel... • Beweis zu Satz

Endbenutzergeräte, über die die Benutzer eine Verbindung mit dem Netz herstellen, werden auch als Hosts bezeichnet.. Mithilfe dieser Geräte können die Benutzer Informationen

Speichern Sie Ihre Lösung im Ordner 'Ergebnisse' unter dem Namen 'Vertiefungsaufga- be_III_Dosen.xlsx' oder 'Vertiefungsaufgabe_III_Dosen.ods'... Thema:

Wenn bei der Firma HARO GmbH ein neues Erzeugnis in das Sortiment aufgenommen werden soll, wird eine Projektgruppe eingerichtet, die sich aus jeweils einem Vertreter der

Innenabstand in Langform für oben (10) - rechts (0) - unten (0) - links (10) Außenabstand in Kurzform 5 Pixel von allen Seiten.

Für den Fall, dass wir nach einem Seitenwechsel die Session fortsetzen, wird der Wert aus der Sessionva- riable erneut in eine lokale Variable

Diese Zwischenkreisspannung wird von einem Tiefsetzsteller oder Hochsetzsteller erzeugt, je nachdem, ob die Gesamtspannung der Solarmodule kleiner oder größer als

Wenn der Wechselrichter feststellt, dass die Leistung zu groß wird, arbeitet er einfach nicht im MPP und begrenzt so die Leistung auf einen Maximalwert... 4.6 Faustformeln