Huiswerk 1
Huiswerk 1
Voor deze opgave gelden volgende richtlijnen:
Je dient een zip bestand in met een individueel bestand voor elke oefening. Gebruik onderstaande naamgeving:
rxxxxxxx_oefening_xx.pyVul je r-nummer vooraan in en het volgnummer van de oefening achteraan. Gebruik voorloopnullen, oefening 1 krijgt dus bijvoorbeeld de naam r0636326_oefening_01.py.
De beoordeling van deze oefeningen gebeurt aan de hand van geautomatiseerde unit tests, daarvoor hanteren we volgende richtlijnen:
- Files met een foute naamgeving worden niet beoordeeld.
- De geautomatiseerde tests houden rekening met typo's. Zolang er minder dan 8 verschillen toont met de verwachte uitvoer, wordt de oplossing als correct beschouwd.
Dit huiswerk is een individuele opdracht, elke vorm van samenwerking is verboden.
Kommagetallen moeten via een f-string geformatteerd worden met twee decimalen. Gebruik volgende code als voorbeeld:
pi = 3.14159265358 print(f"{pi:.2f}") # Uitvoer 3.14
Opgave 1
Schrijf een script dat de beheerder vraagt naar:
- het mountpoint (bijvoorbeeld /, /var of /home)
- de totale capaciteit van de partitie in GB
- de gebruikte ruimte in GB
- de drempel voor een waarschuwing in procent (bijvoorbeeld 80)
- de drempel voor een kritieke melding in procent (bijvoorbeeld 95)
Bereken:
- de vrije ruimte in GB;
- het gebruikspercentage;
- het percentage vrije ruimte
Bepaal de status:
- gebruikspercentage onder de waarschuwingsdrempel → OK
- vanaf de waarschuwingsdrempel → WAARSCHUWING
- vanaf de kritieke drempel → KRITIEK
Controleer ook of de invoer zinvol is. Als de gebruikte ruimte groter is dan de totale capaciteit, of als de waarschuwingsdrempel niet kleiner is dan de kritieke drempel, druk je Ongeldige invoer af en toon je geen rapport.
Als de status KRITIEK is en het mountpoint / is, druk je na het rapport een extra waarschuwing af zoals geïllustreerd in voorbeeld 3.
Onderstaande uitvoer gebruikt 50 gelijktekens per lijn.
Voorbeeld 1:
Geef een mountpoint (bijvoorbeeld /, /var of /home): /var
Geef de totale capaciteit van de partitie (in GB): 250
Geef de gebruikte ruimte in GB: 212
Geef de drempel voor een waarschuwing in procent: 80
Geef de drempel voor een kritieke melding in procent: 90==================================================
SCHIJFRUIMTERAPPORT
==================================================
Mountpoint: /var
Capaciteit: 250 GB
Gebruikt: 212 GB (84.80%)
Vrij: 38 GB (15.20%)
Status: WAARSCHUWING
==================================================Voorbeeld 2:
Geef een mountpoint (bijvoorbeeld /, /var of /home): /data
Geef de totale capaciteit van de partitie (in GB): 4000
Geef de gebruikte ruimte in GB: 5634
Geef de drempel voor een waarschuwing in procent: 75
Geef de drempel voor een kritieke melding in procent: 90Ongeldige invoerVoorbeeld 3:
# INVOER
Geef een mountpoint (bijvoorbeeld /, /var of /home): /
Geef de totale capaciteit van de partitie (in GB): 1000
Geef de gebruikte ruimte in GB: 950
Geef de drempel voor een waarschuwing in procent: 75
Geef de drempel voor een kritieke melding in procent: 90==================================================
SCHIJFRUIMTERAPPORT
==================================================
Mountpoint: /
Capaciteit: 1000 GB
Gebruikt: 950 GB (95.00%)
Vrij: 50 GB (5.00%)
Status: KRITIEK
==================================================
!!! Root-partitie bijna vol: het systeem kan onstabiel worden !!!Opgave 2
Vraag de gebruiker om de vier octetten (een getal tussen 0 en 255 (inclusief)) van een IPv4-adres.
Cast elk octet naar een integer.
Controleer of elk octet tussen 0 en 255 ligt (inclusief). Is dat niet zo, druk dan
Ongeldig IP-adresaf en stop het programma.Als het IP geldig is, bepaal dan de klasse op basis van het eerste octet
Eerste octet Klasse 1 – 126 A 127 Loopback 128 – 191 B 192 – 223 C 224 – 239 D (multicast) 240 – 255 E (experimenteel) 0 Gereserveerd Als het IP geldig is, bepaal dan of het adres privé dan wel publiek is. Een adres is privé wanneer:
- het eerste octet
10is, of - het eerste octet
172is en het tweede octet tussen 16 en 31 ligt (inclusief), of - het eerste octet
192is en het tweede octet168is.
- het eerste octet
Print onderstaande uitvoer uit. Een adres is routeerbaar op het internet als het niet privé is.
Voorbeeld 1:
Geef het eerste octet in: 172
Geef het tweede octet in: 20
Geef het derde octet in: 14
Geef het vierde octet in: 3IP-adres: 172.20.14.3
Klasse: B
Type: Privé
Routeerbaar op het internet: NeeVoorbeeld 2:
Geef het eerste octet in: 192
Geef het tweede octet in: 168
Geef het derde octet in: 1
Geef het vierde octet in: 256Ongeldig IP-adresVoorbeeld 3:
Geef het eerste octet in: 192
Geef het tweede octet in: 168
Geef het derde octet in: 1
Geef het vierde octet in: 137IP-adres: 192.168.1.137
Klasse: C
Type: Privé
Routeerbaar op het internet: NeeOpgave 3
Het IT-departement voert een nieuw wachtwoordbeleid in. Schrijf een script dat een gebruikersnaam en een nieuw wachtwoord vraagt en een score berekent.
Start met score = 0 en tel punten op:
| Regel | Punten |
|---|---|
| Minstens 12 tekens | +2 |
| Minstens 16 tekens (bovenop de vorige) | +1 |
| Bevat minstens één hoofdletter | +1 |
| Bevat minstens één kleine letter | +1 |
| Bevat de gebruikersnaam niet (hoofdletterongevoelig) | +2 |
| Bevat geen spatie | +1 |
Tip: een wachtwoord bevat een hoofdletter als wachtwoord.lower() != wachtwoord. Bedenk zelf hoe je controleert of er een kleine letter in staat.
Bepaal de sterkte:
- afgekeurd →
AFGEKEURD- Dit is het geval als het wachtoord hoofdletterongevoelig niet gelijk is aan
"wachtwoord","password"of"welkom123" - Het wachtwoord minder dan 8 tekens lang is.
- Dit is het geval als het wachtoord hoofdletterongevoelig niet gelijk is aan
- score 7 of 8 →
Sterk - score 5 of 6 →
Gemiddeld - anders →
Zwak
Druk het wachtwoord niet af, maar vervang het met een gepast aantal sterretjes.
Geef weer of het wachtwoord aanvaard wordt, dit is het geval als de sterkte niet zwak of afgekeurd is.
Voorbeeld 1:
Gebruiker: jdevos
Wachtwoord: AbCdEFG123DDDGebruiker: jdevos
Wachtwoord: *************
Lengte: 13
Score: 7/8
Sterkte: Sterk
Wachtwoord aanvaard: JaVoorbeeld 2:
Gebruiker: jdevos
Wachtwoord: WaCHTwoordGebruiker: jdevos
Wachtwoord: **********
Lengte: 10
Score: 5/8
Sterkte: AFGEKEURD
Wachtwoord aanvaard: NeeVoorbeeld 3:
Gebruiker: jdevos
Wachtwoord: AbcGebruiker: jdevos
Wachtwoord: ***
Lengte: 3
Score: 5/8
Sterkte: AFGEKEURD
Wachtwoord aanvaard: NeeOpgave 4
Een nachtelijke back-up moet klaar zijn voordat de werkdag begint.
Vraag:
- de hostnaam van de server
- de hoeveelheid data in GiB
- de overdrachtssnelheid in MiB/s
- de duur van het back-upvenster in uren
- het type back-up (
volledigofincrementeel) - of compressie gebruikt wordt (
ja/nee)
Bereken de duur van de back-up in seconden (1 GiB = 1024 MiB) en zet die om naar uren, minuten en seconden met // en %.
Regels:
- Bij een incrementele back-up wordt slechts 15% van de data gekopieerd.
- Compressie verkleint de te kopiëren hoeveelheid data met 40%, maar verlaagt de snelheid met 20%.
- Pas eerst het back-uptype toe, daarna de compressie.
Bepaal of de back-up binnen het venster past.
Voorbeeld 1:
Hostname: fileserver02
Hoeveelheid data op de server (in GiB): 1500
Overdrachtsnelheid (in MiB/s): 125
Duur van het back-upvenster (in uren): 4
Wat voor soort back-up is het (volledig/incrementeel): volledig
Compressie geactiveerd (Ja/Nee): NeeServer: fileserver02
Type: volledig | Compressie Nee | Snelheid: 125.0 MiB/s
Te kopiëren data: 1500.0 GiB
Geschatte duur: 3u 24m 48s
Back-upvenster: 4u
Past in venster: JaVoorbeeld 2:
Hostname: bigFileServer
Hoeveelheid data op de server (in GiB): 16000000
Overdrachtsnelheid (in MiB/s): 750
Duur van het back-upvenster (in uren): 24
Wat voor soort back-up is het (volledig/incrementeel): incrementeel
Compressie geactiveerd (Ja/Nee): JaServer: bigFileServer
Type: incrementeel | Compressie Ja | Snelheid: 600.0 MiB/s
Te kopiëren data: 1440000.0 GiB
Geschatte duur: 682u 40m 0s
Back-upvenster: 24u
Past in venster: NeeVoorbeeld 3:
Hostname: fileserver03
Hoeveelheid data op de server (in GiB): 8000
Overdrachtsnelheid (in MiB/s): 750
Duur van het back-upvenster (in uren): 10
Wat voor soort back-up is het (volledig/incrementeel): volledig
Compressie geactiveerd (Ja/Nee): JaServer: fileserver03
Type: volledig | Compressie Ja | Snelheid: 600.0 MiB/s
Te kopiëren data: 4800.0 GiB
Geschatte duur: 2u 16m 32s
Back-upvenster: 10u
Past in venster: JaOpgave 5
Een hostingbedrijf garandeert klanten een bepaalde beschikbaarheid (SLA). Vraag:
- de naam van de klant
- het SLA-niveau (
goud,zilverofbrons) - het aantal dagen in de maand
- de totale downtime deze maand in minuten
- of de downtime gepland onderhoud was (
ja/nee)
De SLA-niveaus:
| Niveau | Gegarandeerde beschikbaarheid |
|---|---|
| goud | 99.99% |
| zilver | 99.9% |
| brons | 99.5% |
Werk hoofdletterongevoelig (GOUD, Goud en goud zijn allemaal geldig). Bij een onbekend niveau druk je Onbekend SLA-niveau af en stopt het programma.
Bereken:
- het totaal aantal minuten in de maand;
- de toegestane downtime in minuten;
- de werkelijke beschikbaarheid in procent;
- het resterende downtimebudget (mag negatief zijn).
Gepland onderhoud telt niet mee voor de SLA: in dat geval is de SLA altijd gerespecteerd.
Wordt de SLA geschonden, dan krijgt de klant een tegoed:
- beschikbaarheid >= 99% → 10% tegoed
- beschikbaarheid >= 95% → 25% tegoed
- lager → 50% tegoed
Voorbeeld 1:
Geef de naam van de klant: Brouwerij De Kroon
Geef het SLA-niveau (goud/zilver/brons): ZilVER
Geef het aantal dagen in de maand: 30
Geef het aantal minuten downtime in de maand: 1728
Was de downtime ingeplant (ja/Nee)? NeeKlant: Brouwerij De Kroon
SLA-niveau: zilver (99.90%)
Toegestane downtime: 43.20 min
Werkelijke downtime: 1728 min
Beschikbaarheid: 96.00%
Resterend budget: -1684.80 min
SLA gerespecteerd: Nee
Tegoed: 25%Voorbeeld 2:
Geef de naam van de klant: Brouwerij De Kroon
Geef het SLA-niveau (goud/zilver/brons): goud
Geef het aantal dagen in de maand: 28
Geef het aantal minuten downtime in de maand: 3
Was de downtime ingeplant (ja/Nee)? NeeKlant: Brouwerij De Kroon
SLA-niveau: goud (99.99%)
Toegestane downtime: 4.03 min
Werkelijke downtime: 3 min
Beschikbaarheid: 99.99%
Resterend budget: 1.03 min
SLA gerespecteerd: JaVoorbeeld 3:
Geef de naam van de klant: Brouwerij De Kroon
Geef het SLA-niveau (goud/zilver/brons): GOUD
Geef het aantal dagen in de maand: 28
Geef het aantal minuten downtime in de maand: 1563
Was de downtime ingeplant (ja/Nee)? jaKlant: Brouwerij De Kroon
SLA-niveau: goud (99.99%)
Toegestane downtime: 4.03 min
Werkelijke downtime: 1563 min
Beschikbaarheid: 96.12%
Resterend budget: 4.03 min
SLA gerespecteerd: Ja