17
This commit is contained in:
parent
cf8c24a14d
commit
40ceb06301
127
17.html
127
17.html
@ -30,8 +30,8 @@
|
||||
</script>
|
||||
<style type="text/css">
|
||||
.reveal img{ max-height: 60vh}
|
||||
li { padding-top: .5em !important; }
|
||||
</style>
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@ -50,20 +50,68 @@
|
||||
</section>
|
||||
|
||||
<section style="font-size: .6em">
|
||||
<span style="color: orange">Experimente mit versch. Kompressionsprogrammen ( gzip, bzip2, xz ):</span>
|
||||
<span style="color: orange">Übungen:</span>
|
||||
|
||||
<ul>
|
||||
<li>Finden Sie alle Dateien in Ihrem System, die größer als 1 MiB sind, und lassen Sie deren Namen ausgeben.</li>
|
||||
<li>Wie können Sie find benutzen, um eine Datei zu löschen, die einen merkwürdigen Namen hat (etwa mit unsichtbaren Kontrollzeichen oder mit Umlauten, die von älteren Shells nicht verstanden werden)?</li>
|
||||
<li>Wie würden Sie beim Abmelden dafür sorgen, dass etwaige Dateien in /tmp, die Ihnen gehören, automatisch gelöscht werden?</li>
|
||||
</ul>
|
||||
<aside class="notes">
|
||||
<pre><code>find / -size +1024k -print</code></pre>
|
||||
<pre><code># -inum Inodenname ( ls -i )
|
||||
find . -maxdepth 1 -inum 4711 -exec rm -f '{}' \;</code></pre>
|
||||
<pre><code>find /tmp -user $LOGNAME -type f -print0 \
|
||||
| xargs -0 -r rm -</code></pre>
|
||||
</aside>
|
||||
</section>
|
||||
|
||||
<section style="font-size: .6em">
|
||||
<ul>
|
||||
<li>README ist ein sehr populärer Dateiname. Geben Sie die absoluten
|
||||
Pfadnamen aller Dateien auf Ihrem System an, die README heißen.</li>
|
||||
<li>Legen Sie eine neue Datei in Ihrem Heimatverzeichnis an und überzeugen Sie sich durch einen locate-Aufruf, dass diese Datei nicht gefunden
|
||||
wird (wählen Sie gegebenenfalls einen hinreichend ausgefallenen Dateinamen). Rufen Sie dann (mit Administratorrechten) das Programm updatedb
|
||||
auf. Wird Ihre neue Datei danach mit locate gefunden? Löschen Sie die Datei wieder und wiederholen Sie die vorigen Schritte</li>
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section style="font-size: .6em">
|
||||
<ul>
|
||||
<li>Überzeugen Sie sich, dass slocate funktioniert, indem Sie als gewöhnlicher Benutzer nach Dateien wie /etc/shadow suchen.</li>
|
||||
<li>Welche Dateien stehen im Verzeichnis /boot? Hat das Verzeichnis Unterverzeichnisse und, wenn ja, welche?
|
||||
<li style="padding-top: .5em">Erklären Sie den Unterschied zwischen <code>ls</code> mit einem Dateinamen als
|
||||
Argument und <code>ls</code> mit einem Verzeichnisnamen als Argument. <br>
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section style="font-size: .6em">
|
||||
<ul>
|
||||
<li>Wie können Sie <code>ls</code> dazu bringen, bei einem Verzeichnisnamen als
|
||||
Argument Informationen über das benannte Verzeichnis selbst anstatt über
|
||||
die darin enthaltenen Dateien zu liefern?
|
||||
<li>Warum hat <code>mv</code> keine -R-Option wie <code>cp</code>?
|
||||
<li>Angenommen, in einem Ihrer Verzeichnisse steht eine Datei namens »- file« (mit einem Minuszeichen am Anfang des Namens). Wie würden Sie diese Datei entfernen?
|
||||
<li>Wenn Sie ein Verzeichnis haben, in dem Sie nicht versehentlich einem »rm *« zum Opfer fallen wollen, können Sie dort eine Datei namens
|
||||
»- i« anlegen, etwa mit <pre><code>$ > -i</code></pre> Was passiert, wenn Sie jetzt das Kommando »rm *« ausführen, und warum?</li>
|
||||
<li>Wie löscht man diese Datei ( -i ) ?
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
||||
<section style="font-size: .6em">
|
||||
<p><span style="color: orange">Experimente mit versch. Kompressionsprogrammen ( gzip, bzip2, xz ):</span>
|
||||
<ul>
|
||||
<li>Besorgen Sie sich eine geeignete Datei (etwa ein größeres tar -Archiv zB den Linux Kernel) und komprimieren Sie sie jeweils mit gzip , bzip2 und xz . Messen Sie dabei die Ausführungszeit durch ein vorgesetztes time . Wie verhalten die Laufzeiten und die Komprimierungsraten sich zueinander?</li>
|
||||
<li>Experimentieren Sie mit der Datei aus der vorigen Aufgabe und vergleichen Sie die Laufzeit und die Größe des Resultats für xz mit verschiedenen Effizienz-Optionen. Was ist der Unterschied zwischen -1 und -6 und zwischen -6 und -9 ?</li>
|
||||
<li></li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>Hinweise:
|
||||
|
||||
</section>
|
||||
|
||||
<section style="font-size: .65em">
|
||||
<h4>Übungen mit grep / reguläre Ausdrücke</h4>
|
||||
|
||||
<ul>
|
||||
<li>
|
||||
Sind die Operatoren ? und + in regulären Ausdrücken wirklich nötig?
|
||||
@ -83,16 +131,73 @@
|
||||
</li>
|
||||
</ul>
|
||||
<p>Quelle: <a href="/pdf/Linux-Kurs/lxes-de-manual.pdf">lxes-de-manual.pdf</a>
|
||||
|
||||
<aside class="notes">
|
||||
<pre><code>egrep '\<(Königst|T)ochter\>' frosch.txt</code></pre>
|
||||
<pre><code>grep :/bin/bash$ /etc/passwd</code></pre>
|
||||
<pre><code>$ k='[^aeiou]*'
|
||||
$ grep -i ^${k}a${k}e${k}i${k}o${k}u${k}$ /usr/share/dict/words</code></pre>
|
||||
<pre><code>egrep '(\<[[:alpha:]]{4,}\>).*\<\1\>' frosch.txt</code></pre>
|
||||
</aside>
|
||||
|
||||
</section>
|
||||
<section>
|
||||
|
||||
<section style="font-size: .6em">
|
||||
<ul>
|
||||
<li>Wie können Sie prüfen, ob in einem Verzeichnis Dateien mit »merkwürdigen« Namen enthalten sind, etwa solche mit Leerzeichen am Schluss
|
||||
oder mit unsichtbaren Steuerzeichen in der Mitte?
|
||||
|
||||
<li>Vergleichen Sie die Ausgabe der Kommandos »ls /tmp« und »ls /tmp
|
||||
>ls-tmp.txt« (wobei wir mit »Ausgabe« im zweiten Fall den Inhalt der Datei
|
||||
ls- tmp.txt meinen). Fällt Ihnen etwas auf? Falls ja, wie könnte man das Phänomen erklären? ( u.U. kein Effekt, hängt von der Version ab ) </li>
|
||||
|
||||
<li>Ersetzten Sie in den Dateinamen der jpg aus bilder.zip alle Gross- durch Kleinbuchstaben
|
||||
<pre><code class="bash">~$ tr '[:upper:]' '[:lower:]' ...</code></pre></li>
|
||||
|
||||
Übungen
|
||||
C8.7 [2] Wie können Sie prüfen, ob in einem Verzeichnis Dateien mit »merkwürdigen« Namen enthalten sind, etwa solche mit Leerzeichen am Schluss
|
||||
oder mit unsichtbaren Steuerzeichen in der Mitte?
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section style="font-size: .6em">
|
||||
<ul>
|
||||
|
||||
<li>Sortieren Sie die Teilnehmerliste in <a href="/linuxkurs/beispiele/17/teilnehmer0.dat">teilnehmer0.dat</a> nach den Vereinsnamen und innerhalb der
|
||||
Vereine nach den Nach- und Vornamen der Spieler (in dieser Reihenfolge)
|
||||
|
||||
<p><pre><code class="bash">~$ man sort</code></pre></p>
|
||||
|
||||
<li>Generieren Sie eine neue Version der Datei teilnehmer0.dat, in der die Startnummer und die Vereinszugehörigkeit nicht auftauchen.
|
||||
<p><pre><code class="bash">~$ man cut
|
||||
~$ man paste</code></pre></p>
|
||||
|
||||
<li>Erzeugen Sie eine Version der Datei teilnehmer0.dat, bei der die Felder nicht durch Doppelpunkte, sondern durch die Zeichenkette »,␣« (Komma gefolgt von einem Leerzeichen) getrennt sind.
|
||||
<li>Wie viele verschiedene Gruppen werden von Benutzern auf Ihrem System als primäre Gruppen benutzt? (Die primäre Gruppe eines Benutzers ist das vierte Feld in der Datei /etc/passwd.)
|
||||
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section style="font-size: .55em">
|
||||
<p>
|
||||
Erstellt ein Backup-Installations-Script welches
|
||||
<ol>
|
||||
<li>einmal per Dialog einen Backup-Dateinamen ohne Endung abfrägt mit <a href="https://en.wikibooks.org/wiki/Bash_Shell_Scripting/Whiptail#Input_box">Whiptail</a></li>
|
||||
<li>einmal per Dialog das Backup-Ziel abfrägt ( zB lk.schubertdaniel.de / oder localhost ) </li>
|
||||
<li>einen systemd Timer ( <a href="https://wiki.archlinux.de/title/Systemd/Timers">https://wiki.archlinux.de/title/Systemd/Timers </a> ) installiert, der täglich
|
||||
<ul>
|
||||
<li>die Ordner „wp-content/themes“ und „wp-content/uploads“ eurer Wordpress Installation </li>
|
||||
<li>Die Datenbank eurer Wordpress Installation ( Befehl mysqldump ) <pre><code class="sql" contenteditable="">mysqldump --add-drop-table -h mysql_hostserver -u mysql_username -p mysql_databasename
|
||||
</code></pre></li>
|
||||
</ul>
|
||||
zusammen in ein <strong>xz-komprimiertes</strong> File mit dem oben abgefragten Namen + Datum im Format <br> „24-02-2019“ packt</li>
|
||||
<li>das Backup auf Backup-Ziel per „scp“ oder „rsync“ kopiert.</li>
|
||||
|
||||
<li>Strukturiert das Script mit functions; ggf. kann es sinnvoll sein, die Aufgabe in mehrere Dateien aufzuteilen.
|
||||
|
||||
</ol>
|
||||
</p>
|
||||
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
Binary file not shown.
@ -1,34 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
function db_backup {
|
||||
|
||||
# Vars
|
||||
host=localhost
|
||||
user=XXXXXXX
|
||||
pass=XXXXXXX
|
||||
db=wordpress
|
||||
|
||||
echo 'DB Export ------> '
|
||||
mysqldump --opt --add-drop-table -h$host -u$user -p$pass $db | gzip > wp-db.sql.gz
|
||||
}
|
||||
|
||||
function file_backup {
|
||||
backupfile="wordpress-backup.tar"
|
||||
|
||||
echo 'File Backup --- building tar File...'
|
||||
tar -cf $backupfile ~/wp*
|
||||
echo '+DONE'
|
||||
}
|
||||
|
||||
|
||||
echo '-------------------------------------------'
|
||||
echo 'Tolles Backup Script'
|
||||
echo '-------------------------------------------'
|
||||
|
||||
backupdir=backup
|
||||
|
||||
cd ~ ; mkdir $backupdir && cd $backupdir || { echo "FEHLER!!!!"; exit 1 }
|
||||
|
||||
# Funktionsaufrufe
|
||||
db_backup
|
||||
file_backup
|
Binary file not shown.
Before Width: | Height: | Size: 3.0 MiB |
Binary file not shown.
@ -1,158 +0,0 @@
|
||||
Der Froschkönig oder der eiserne Heinrich
|
||||
|
||||
In alten Zeiten, als das Wünschen noch geholfen hat, lebte einmal ein
|
||||
König, der hatte wunderschöne Töchter. Die jüngste von ihnen war so
|
||||
schön, daß die Sonne selber, die doch so vieles schon gesehen hat,
|
||||
sich verwunderte, sooft sie ihr ins Gesicht schien.
|
||||
|
||||
Nahe bei dem Schlosse war ein großer, dunkler Wald, und mitten darin,
|
||||
unter einer alten Linde, war ein Brunnen. Wenn nun der Tag recht heiß war,
|
||||
ging die jüngste Prinzessin hinaus in den Wald und setzte sich an den Rand
|
||||
des kühlen Brunnens. Und wenn sie Langeweile hatte, nahm sie eine
|
||||
goldene Kugel, warf sie in die Höhe und fing sie wieder auf. Das war
|
||||
ihr liebstes Spiel.
|
||||
|
||||
Nun trug es sich einmal zu, daß die goldene Kugel der Königstochter
|
||||
nicht in die Händchen fiel, sondern auf die Erde schlug und gerade in
|
||||
den Brunnen hineinrollte. Die Königstochter folgte ihr mit den Augen
|
||||
nach, aber die Kugel verschwand, und der Brunnen war tief, so tief,
|
||||
daß man keinen Grund sah.
|
||||
|
||||
Da fing die Prinzessin an zu weinen und weinte immer lauter und konnte
|
||||
sich gar nicht trösten. Als sie so klagte, rief ihr plötzlich jemand
|
||||
zu: »Was hast du nur, Königstochter? Du schreist ja, daß sich ein
|
||||
Stein erbarmen möchte.«
|
||||
|
||||
Sie sah sich um, woher die Stimme käme, da erblickte sie einen Frosch,
|
||||
der seinen dicken, häßlichen Kopf aus dem Wasser streckte. »Ach, du
|
||||
bist's, alter Wasserpatscher«, sagte sie. »Ich weine über meine
|
||||
goldene Kugel, die mir in den Brunnen hinabgefallen ist.«
|
||||
|
||||
»Sei still und weine nicht«, antwortete der Frosch, »ich kann wohl Rat
|
||||
schaffen. Aber was gibst du mir, wenn ich dein Spielzeug wieder
|
||||
heraufhole?«
|
||||
|
||||
»Was du haben willst, lieber Frosch«, sagte sie, »meine Kleider, meine
|
||||
Perlen und Edelsteine, auch noch die goldene Krone, die ich trage.«
|
||||
|
||||
Der Frosch antwortete: »Deine Kleider, deine Perlen und Edelsteine und
|
||||
deine goldene Krone, die mag ich nicht. Aber wenn du mich liebhaben
|
||||
willst und ich dein Geselle und Spielkamerad sein darf, wenn ich an
|
||||
deinem Tischlein neben dir sitzen, von deinem goldenen Tellerlein
|
||||
essen, aus deinem Becherlein trinken, in deinem Bettlein schlafen
|
||||
darf, dann will ich hinuntersteigen und dir die goldene Kugel
|
||||
heraufholen.«
|
||||
|
||||
»Ach, ja«, sagte sie, »ich verspreche dir alles, was du willst, wenn
|
||||
du mir nur die Kugel wiederbringst.« Sie dachte aber, der einfältige
|
||||
Frosch mag schwätzen, was er will, der sitzt doch im Wasser bei
|
||||
seinesgleichen und quakt und kann keines Menschen Geselle sein!
|
||||
|
||||
Als der Frosch das Versprechen der Königstochter erhalten hatte,
|
||||
tauchte er seinen Kopf unter, sank hinab, und über ein Weilchen kam er
|
||||
wieder heraufgerudert, hatte die Kugel im Maul und warf sie ins
|
||||
Gras. Die Königstochter war voll Freude, als sie ihr schönes Spielzeug
|
||||
wiedererblickte, hob es auf und sprang damit fort.
|
||||
|
||||
»Warte, warte!« rief der Frosch. »Nimm mich mit, ich kann nicht so
|
||||
laufen wie du!« Aber was half es ihm, daß er ihr sein Quak-quak so
|
||||
laut nachschrie, wie er nur konnte! Sie hörte nicht darauf, eilte nach
|
||||
Hause und hatte den Frosch bald vergessen.
|
||||
|
||||
Am andern Tag, als sie sich mit dem König und allen Hofleuten zur
|
||||
Tafel gesetzt hatte und eben von ihrem goldenen Tellerlein aß, da kam,
|
||||
plitsch platsch, plitsch platsch, etwas die Marmortreppe
|
||||
heraufgekrochen. Als es oben angelangt war, klopfte es an die Tür und
|
||||
rief. »Königstochter, jüngste, mach mir auf«
|
||||
|
||||
Sie lief und wollte sehen, wer draußen wäre. Als sie aber aufmachte,
|
||||
saß der Frosch vor der Tür. Da warf sie die Tür hastig zu, setzte sich
|
||||
wieder an den Tisch, und es war ihr ganz ängstlich zumute.
|
||||
Der König sah wohl, daß ihr das Herz gewaltig klopfte, und sprach:
|
||||
|
||||
»Mein Kind, was fürchtest du dich? Steht etwa ein Riese vor der Tür
|
||||
und will dich holen?«
|
||||
|
||||
»Ach, nein«, antwortete sie, »es ist kein Riese, sondern ein garstiger
|
||||
Frosch.«
|
||||
|
||||
»Was will der Frosch von dir?«
|
||||
|
||||
»Ach, lieber Vater, als ich gestern im Wald bei dem Brunnen saß und
|
||||
spielte, fiel meine goldene Kugel ins Wasser. Als ich deshalb weinte,
|
||||
hat sie mir der Frosch heraufgeholt. Und weil er es durchaus
|
||||
verlangte, versprach ich ihm, er sollte mein Spielgefährte werden. Ich
|
||||
dachte aber nimmermehr, daß er aus seinem Wasser käme. Nun ist er
|
||||
draußen und will zu mir herein.«
|
||||
|
||||
Da klopfte es zum zweiten Mal, und eine Stimme rief:
|
||||
|
||||
»Königstochter, jüngste,
|
||||
Mach mir auf!
|
||||
Weißt du nicht, was gestern
|
||||
Du zu mir gesagt
|
||||
Bei dem kühlen Brunnenwasser?
|
||||
Königstochter, jüngste,
|
||||
Mach mir auf!«
|
||||
|
||||
Da sagte der König: »Was du versprochen hast, das mußt du auch halten!
|
||||
Geh nur und mach ihm auf!«
|
||||
|
||||
Sie ging und öffnete die Tür. Da hüpfte der Frosch herein und hüpfte
|
||||
ihr immer nach bis zu ihrem Stuhl. Dort blieb er sitzen und rief: »Heb
|
||||
mich hinauf zu dir!« Sie zauderte, bis es endlich der König
|
||||
befahl. Als der Frosch auf dem Stuhl war, wollte er auf den Tisch, und
|
||||
als er da saß, sprach er: »Nun schieb mir dein goldenes Tellerlein
|
||||
näher, damit wir mitsammen essen können.« Der Frosch ließ sich's gut
|
||||
schmecken, ihr aber blieb fast jeder Bissen im Halse stecken.
|
||||
|
||||
Endlich sprach der Frosch: »Ich habe mich satt gegessen und bin
|
||||
müde. Nun trag mich in dein Kämmerlein und mach dein seidenes Bettlein
|
||||
zurecht!« Die Königstochter fing an zu weinen und fürchtete sich vor
|
||||
dem kalten Frosch, den sie sich nicht anzurühren getraute und der nun
|
||||
in ihrem schönen, reinen Bettlein schlafen sollte.
|
||||
|
||||
Der König aber wurde zornig und sprach: »Wer dir geholfen hat, als du
|
||||
in Not warst, den sollst du hernach nicht verachten!«
|
||||
Da packte sie den Frosch mit zwei Fingern, trug ihn hinauf in ihr
|
||||
Kämmerlein und setzte ihn dort in eine Ecke. Als sie aber im Bette
|
||||
lag, kam er gekrochen und sprach: »Ich will schlafen so gut wie
|
||||
du. Heb mich hinauf, oder ich sag's deinem Vater!«
|
||||
|
||||
Da wurde sie bitterböse, holte ihn herauf und warf ihn gegen die
|
||||
Wand. »Nun wirst du Ruhe geben«, sagte sie, »du garstiger Frosch!« Als
|
||||
er aber herabfiel, war er kein Frosch mehr, sondern ein Königssohn mit
|
||||
schönen freundlichen Augen. Der war nun nach ihres Vaters Willen ihr
|
||||
lieber Geselle und Gemahl. Er erzählte ihr, er wäre von einer bösen
|
||||
Hexe verwünscht worden, und niemand hätte ihn aus dem Brunnen erlösen
|
||||
können als sie allein, und morgen wollten sie mitsammen in sein Reich
|
||||
gehen.
|
||||
|
||||
Und wirklich, am anderen Morgen kam ein Wagen herangefahren, mit acht
|
||||
weißen Pferden bespannt, die hatten weiße Straußfedern auf dem Kopf
|
||||
und gingen in goldenen Ketten. Hinten auf dem Wagen aber stand der
|
||||
Diener des jungen Königs, das war der treue Heinrich.
|
||||
|
||||
Der treue Heinrich hatte sich so gekränkt, als sein Herr in einen
|
||||
Frosch verwandelt worden war, daß er drei eiserne Bänder um sein Herz
|
||||
hatte legen lassen, damit es ihm nicht vor Weh und Traurigkeit
|
||||
zerspränge.
|
||||
|
||||
Der Wagen sollte nun den jungen König in sein Reich holen. Der treue
|
||||
Heinrich hob ihn und seine junge Gemahlin hinein, stellte sich wieder
|
||||
hinten hinauf und war voll Freude über die Erlösung seines Herrn. Als
|
||||
sie ein Stück des Weges gefahren waren, hörte der Königssohn, daß es
|
||||
hinter ihm krachte, als ob etwas zerbrochen wäre. Da drehte er sich um
|
||||
und rief:
|
||||
|
||||
»Heinrich, der Wagen bricht!«
|
||||
»Nein, Herr, der Wagen nicht,
|
||||
Es ist ein Band von meinem Herzen,
|
||||
Das da lag in großen Schmerzen,
|
||||
Als Ihr in dem Brunnen saßt
|
||||
Und in einen Frosch verzaubert wart.«
|
||||
|
||||
Noch einmal und noch einmal krachte es auf dem Weg, und der Königssohn
|
||||
meinte immer, der Wagen bräche. Doch es waren nur die Bänder, die vom
|
||||
Herzen des treuen Heinrich absprangen, weil sein Herr nun erlöst und
|
||||
glücklich war.
|
8
beispiele/17/grep-loesungen.sh
Normal file
8
beispiele/17/grep-loesungen.sh
Normal file
@ -0,0 +1,8 @@
|
||||
egrep '\<(Königst|T)ochter\>' frosch.txt
|
||||
|
||||
grep :/bin/bash$ /etc/passwd
|
||||
|
||||
k='[^aeiou]*'
|
||||
grep -i ^${k}a${k}e${k}i${k}o${k}u${k}$ /usr/share/dict/words
|
||||
|
||||
egrep '(\<[[:alpha:]]{4,}\>).*\<\1\>' frosch.txt
|
Binary file not shown.
Before Width: | Height: | Size: 114 KiB |
11
beispiele/17/teilnehmer0.dat
Normal file
11
beispiele/17/teilnehmer0.dat
Normal file
@ -0,0 +1,11 @@
|
||||
Schulz:Hugo:SV Schnaufenberg:123:Herren
|
||||
Schleicher:Detlef:TSV Lahmhausen:13:Herren
|
||||
Flöttmann:Fritz:Sportfreunde Renntal:217:Herren
|
||||
Springinsfeld:Karlheinz:TV Jahnstein:154:Herren
|
||||
von Traben:Gesine:TV Jahnstein:26:Damen
|
||||
Rasbichel:Ulla:TSV Lahmhausen:117:Damen
|
||||
Schwitz:Sieglinde:Sportfreunde Renntal:93:Damen
|
||||
Rasbichel:Katja:TSV Lahmhausen:119:Damen
|
||||
Langbein:Leni:SV Schnaufenberg:55:Damen
|
||||
Zielinger:Hannes:TV Jahnstein:45:Herren
|
||||
Fluschinsky:Käthe:Sportfreunde Renntal:57:Damen
|
Loading…
Reference in New Issue
Block a user