Labo 9 — Archieven, compressie & streams
In dit labo oefen je met archieven en compressie, en leer je hoe je commando's kunt combineren via pipes en uitvoer kunt omleiden naar bestanden.
Oefening 1 — Archiveren en comprimeren
Stap 1 — Bestanden klaarzetten
- Maak een map
archief_oefeningaan in je home directory. - Maak daarbinnen een map
documentenmet de volgende bestanden:rapport.txt(inhoud: "Maandelijks rapport")notities.txt(inhoud: "Vergadering: dinsdag")config.txt(inhoud: "server=localhost")
- Controleer de mapstructuur.
Stap 2 — Archiveren
- Maak een archief
documenten.tarvan de mapdocumenten. - Controleer de inhoud van het archief zonder het uit te pakken.
- Pak het archief uit naar een nieuwe map
documenten_restored. - Controleer of alle bestanden correct hersteld zijn.
Stap 3 — Comprimeren
- Comprimeer
documenten.tarmetgzip. - Vergelijk de bestandsgrootte voor en na compressie.
- Pak
documenten.tar.gzuit in een nieuwe mapdocumenten_gz.
Stap 4 — Alles in één stap
- Maak een gecomprimeerd archief
documenten_v2.tar.gzvan de mapdocumentenin één commando. - Controleer de inhoud van het archief zonder het uit te pakken.
Oefening 2 — Redirection
- Voer
ls /etcuit en sla de uitvoer op in een bestandetc_inhoud.txt. - Voeg de uitvoer van
datetoe aan hetzelfde bestand (gebruik>>). - Bekijk de inhoud van
etc_inhoud.txt. - Voer
ls /bestaat_nietuit en leid de foutmelding om naarfouten.txt. - Voer een commando uit dat zowel stdout als stderr naar
alles.txtstuurt. - Voer
echo "klaar"uit maar gooi de uitvoer weg (stuur naar/dev/null).
Oefening 3 — Pipes en filters
Stap 1 — Bestand opbouwen
Maak een bestand landen.txt met de volgende inhoud:
Duitsland
België
Nederland
Frankrijk
Spanje
Italië
België
Nederland
Duitsland
Portugal
Stap 2 — Filteren en sorteren
- Sorteer de landen alfabetisch.
- Toon enkel de unieke landen (geen duplicaten).
- Tel hoeveel unieke landen er zijn.
- Filter enkel de landen die beginnen met de letter "D".
- Combineer: sorteer alfabetisch, verwijder duplicaten en sla het resultaat op in
unieke_landen.txt.
Oefening 4 — Tales of Middle Earth
Je helpt de bibliothecarissen van Rivendell met het analyseren van historische geschriften.
Stap 1 — De bibliotheek opzetten
Maak een bestand personages.txt met de volgende inhoud:
Gandalf;Wizard
Aragorn;Koning
Frodo;Hobbit
Legolas;Elf
Gimli;Dwerg
Boromir;Mens
Samwise;Hobbit
Saruman;Wizard
Gollum;Wezen
Sauron;Dark Lord
Stap 2 — Analyseren
- Toon enkel de namen (eerste kolom) door het
;als scheidingsteken te gebruiken. - Toon enkel de rollen (tweede kolom).
- Filter enkel de Hobbits.
- Tel hoeveel personages er in de lijst staan.
- Sorteer de personages alfabetisch op naam en sla het resultaat op in
personages_gesorteerd.txt.
Stap 3 — Verdere analyse
-
Maak een bestand
plaatsen.txtmet de volgende inhoud:Rivendell;10Mordor;100Gondor;50Rohan;40Moria;75Isengard;80The Shire;5 -
Sorteer de plaatsen op gevaarsscore (tweede kolom) van laag naar hoog.
-
Toon de twee veiligste plaatsen.
-
Filter de gevaarlijkste plaats (score 100) en sla op in
gevaarlijkste.txt.
Uitdaging — Logbestand analyseren
Maak een bestand server.log met de volgende inhoud:
ERROR: database connection failed
INFO: server started on port 8080
WARNING: high memory usage detected
ERROR: timeout on request /api/users
INFO: request completed in 120ms
ERROR: disk space low
INFO: backup completed
WARNING: slow query detected
ERROR: authentication failed for user admin
INFO: cache cleared
Beantwoord de volgende vragen met één commando (combineer pipes):
- Hoeveel ERROR-meldingen zijn er?
- Toon enkel de WARNING-meldingen.
- Toon alle unieke meldingstypes (ERROR, INFO, WARNING) — elk type één keer.
- Sla alle ERRORs op in
errors.logen alle WARNINGs inwarnings.log.