Ga naar hoofdinhoud

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

  1. Maak een map archief_oefening aan in je home directory.
  2. Maak daarbinnen een map documenten met de volgende bestanden:
    • rapport.txt (inhoud: "Maandelijks rapport")
    • notities.txt (inhoud: "Vergadering: dinsdag")
    • config.txt (inhoud: "server=localhost")
  3. Controleer de mapstructuur.

Stap 2 — Archiveren

  1. Maak een archief documenten.tar van de map documenten.
  2. Controleer de inhoud van het archief zonder het uit te pakken.
  3. Pak het archief uit naar een nieuwe map documenten_restored.
  4. Controleer of alle bestanden correct hersteld zijn.

Stap 3 — Comprimeren

  1. Comprimeer documenten.tar met gzip.
  2. Vergelijk de bestandsgrootte voor en na compressie.
  3. Pak documenten.tar.gz uit in een nieuwe map documenten_gz.

Stap 4 — Alles in één stap

  1. Maak een gecomprimeerd archief documenten_v2.tar.gz van de map documenten in één commando.
  2. Controleer de inhoud van het archief zonder het uit te pakken.

Oefening 2 — Redirection

  1. Voer ls /etc uit en sla de uitvoer op in een bestand etc_inhoud.txt.
  2. Voeg de uitvoer van date toe aan hetzelfde bestand (gebruik >>).
  3. Bekijk de inhoud van etc_inhoud.txt.
  4. Voer ls /bestaat_niet uit en leid de foutmelding om naar fouten.txt.
  5. Voer een commando uit dat zowel stdout als stderr naar alles.txt stuurt.
  6. 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

  1. Sorteer de landen alfabetisch.
  2. Toon enkel de unieke landen (geen duplicaten).
  3. Tel hoeveel unieke landen er zijn.
  4. Filter enkel de landen die beginnen met de letter "D".
  5. 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

  1. Toon enkel de namen (eerste kolom) door het ; als scheidingsteken te gebruiken.
  2. Toon enkel de rollen (tweede kolom).
  3. Filter enkel de Hobbits.
  4. Tel hoeveel personages er in de lijst staan.
  5. Sorteer de personages alfabetisch op naam en sla het resultaat op in personages_gesorteerd.txt.

Stap 3 — Verdere analyse

  1. Maak een bestand plaatsen.txt met de volgende inhoud:

    Rivendell;10
    Mordor;100
    Gondor;50
    Rohan;40
    Moria;75
    Isengard;80
    The Shire;5
  2. Sorteer de plaatsen op gevaarsscore (tweede kolom) van laag naar hoog.

  3. Toon de twee veiligste plaatsen.

  4. 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):

  1. Hoeveel ERROR-meldingen zijn er?
  2. Toon enkel de WARNING-meldingen.
  3. Toon alle unieke meldingstypes (ERROR, INFO, WARNING) — elk type één keer.
  4. Sla alle ERRORs op in errors.log en alle WARNINGs in warnings.log.