- Leren
- Informatica & ICT
- IT, netwerken & cloud
- Linux: commandoregel, shellscripts, gebruikers en services
- Linux-processen, pakketten en services
Linux-processen, pakketten en services beheren
ps, top en free, stop ze met signalen en wijzig hun prioriteit met nice. Bekijk de hardware met hulpmiddelen zoals lscpu, lsblk en lspci. Installeer software, werk die bij en verwijder die met apt en dnf, beheer services met systemctl, lees logboeken met journalctl, /var/log en dmesg om problemen met een falende service op te lossen, en maak back-ups van bestanden met tar, gzip, xz en zip.BeginnerLes 6 van 7 in Cursus Linux: commandoregel, shellscripts, gebruikers en services
Wat je leert
- Zoek de programma's die op een Linux-systeem draaien, bekijk hoeveel CPU en geheugen ze gebruiken en stop of pauzeer ze veilig of wijzig hun prioriteit.
- Toon processen en interpreteer de uitvoer van psLeg uit wat een proces is, herken het aan zijn proces-ID en gebruik
ps,pgrepen/procom processen te vinden en hun toestand te bekijken. - Bewaak CPU-gebruik, geheugen en systeembelasting met top, free en uptimeLees de actuele procesweergave in
top, beoordeel het geheugen metfreeen bepaal aan de hand van de gemiddelde systeembelasting of een systeem overbelast is. - Stop processen met signalenStuur signalen met
kill,pkillenkillall, kies tussen een vriendelijk verzoek om te stoppen en een gedwongen stop, en controleer het resultaat. - Voer taken op de achtergrond uit en stel prioriteiten inVerplaats commando's tussen de voorgrond en de achtergrond, laat ze na het afmelden doordraaien en wijzig hun CPU-prioriteit met
niceenrenice.
- Toon processen en interpreteer de uitvoer van ps
- Zoek uit welke processor, welk geheugen en welke schijven en apparaten een Linux-machine heeft, en welke kernel en stuurprogramma's die gebruikt, zonder de behuizing te openen.
- Bepaal welke processor, welk geheugen en welk systeem je gebruiktGebruik
uname,lscpu,nproc,/procendmidecodeom de architectuur, CPU's, het geheugen en de kernel van een machine te achterhalen. - Toon schijven, PCI-apparaten en USB-apparaten met hun stuurprogramma'sBenoem opslagapparaten correct, toon de apparaten die op een machine zijn aangesloten met
lsblk,lspcienlsusb, en zoek de bijbehorende stuurprogramma's en kernelmeldingen.
- Bepaal welke processor, welk geheugen en welk systeem je gebruikt
- Gebruik de pakketbeheerders van de Debian- en Red Hat-familie om software vanuit vertrouwde repository's veilig te installeren, bij te werken, te verwijderen en te bekijken.
- Begrijp pakketten, repository's en afhankelijkhedenLeg uit wat een pakket, een repository en een afhankelijkheid zijn, hoe pakketgereedschappen op hoog en laag niveau het werk verdelen en welke hulpmiddelen elke distributiefamilie gebruikt.
- Installeer software, werk die bij en verwijder die met apt en dnfVervers pakketinformatie, installeer en upgrade software en verwijder die volledig met
aptop systemen uit de Debian-familie endnfop systemen uit de Red Hat-familie. - Zoek pakketten en bekijk geïnstalleerde softwareZoek het pakket dat je nodig hebt, controleer wat is geïnstalleerd en welke versie het heeft, bekijk welke bestanden een pakket heeft geïnstalleerd en bij welk pakket een bestand hoort, en bekijk de pakketgeschiedenis.
- Begrijp pakketten, repository's en afhankelijkheden
- Controleer, start en stop achtergrondservices, schakel ze in voor automatisch starten en pas ze aan met
systemctl. Begrijp hoe systemd bepaalt wat bij het opstarten draait.- Begrijp systemd, units en de status van servicesLeg uit wat een service en een systemd-unit zijn, lees de uitvoer van
systemctl statusen maak onderscheid tussen een service die draait en een service die is ingeschakeld voor automatisch starten. - Start en stop services en schakel automatisch starten in en uitBeheer met
systemctlservices die nu draaien en services die bij het opstarten starten, pas configuratiewijzigingen veilig toe en kies de standaarddoelunit voor het opstarten. - Lees unitbestanden en pas ze aanZoek en lees het unitbestand van een service, wijzig de instellingen veilig met aanvullende configuratiebestanden en schrijf zelf een eenvoudige service.
- Begrijp systemd, units en de status van services
- Zoek met het systemd-logboek, logbestanden in
/var/logen kernelmeldingen de berichten die verklaren wat een systeem en zijn services hebben gedaan, en gebruik die om een falende service te herstellen.- Raadpleeg het systemd-logboek met journalctlLees het systemd-logboek met
journalctl, gefilterd op service, opstartsessie, prioriteit en tijd, en weet waar het logboek wordt opgeslagen. - Lees logbestanden in /var/log en kernelmeldingenZoek en lees tekstlogbestanden in
/var/log, inclusief oudere bestanden die door logrotatie zijn ontstaan, en gebruikdmesgom kernelmeldingen over hardware en stuurprogramma's te lezen. - Onderzoek en verhelp stapsgewijs problemen met een falende serviceCombineer
systemctl,journalctlen de eigen controles van het programma tot een herhaalbare werkwijze die de oorzaak van een falende service vindt en de oplossing controleert.
- Raadpleeg het systemd-logboek met journalctl
- Bundel bestanden en directory's in archieven met
tarenzip, comprimeer en decomprimeer ze met gzip, bzip2 en xz, en kies het juiste formaat voor back-ups en delen.- Maak tar-archieven, bekijk de inhoud en pak ze uitGebruik
tarom gecomprimeerde archieven te maken, hun inhoud te controleren en ze op de juiste plaats uit te pakken zonder per ongeluk bestanden te overschrijven. - Comprimeer bestanden met gzip, bzip2, xz en zipComprimeer en decomprimeer afzonderlijke bestanden, lees gecomprimeerde logboeken zonder ze uit te pakken, gebruik
zipom te delen en kies een formaat op basis van snelheid, grootte en doel.
- Maak tar-archieven, bekijk de inhoud en pak ze uit
Linux-processen, pakketten en services: uitleg
1Bewaak en beheer actieve processen
Bij een traag commando, een drukke server en een programma dat niet wil afsluiten, begin je met dezelfde vraag: wat draait er? Met procesgereedschappen koppel je een programmanaam aan de eigenaar, proces-ID en het gebruik van systeemmiddelen. Je leest een momentopname, volgt veranderingen in de tijd en kiest vervolgens hoe je werk stopt of pauzeert. Met taakbeheer in de shell en CPU-prioriteiten krijg je meer grip op langdurige taken zonder de terminalprompt kwijt te raken.
1.1 Toon processen en interpreteer de uitvoer van ps
Een programma zoals /usr/bin/sleep is een bestand op schijf. Een proces is een draaiende instantie van dat programma, met eigen geheugen en hulpmiddelen. Drie commando's die hetzelfde programma uitvoeren, maken drie processen. Elk actief proces heeft een PID, een proces-ID; Linux kan dat nummer na beëindiging opnieuw gebruiken.
Zoek het proces en het bovenliggende proces
Een proces wordt normaal gestart door een ander proces, het bovenliggende proces. De kolom PPID geeft de PID van dat bovenliggende proces. Commando's die je in een shell start, zijn kindprocessen van die shell. PID 1 is het eerste proces dat de kernel start; op een systeem met systemd is dat systemd. pstree -p tekent deze familieverhoudingen als het is geïnstalleerd.
ps maakt een momentopname. De standaardselectie bestaat uit processen met je effectieve gebruikers-ID op je huidige terminal. Kies voor een overzicht van het hele systeem de kolommen die je nodig hebt:
| Commando | Handige kolommen |
|---|---|
ps -ef | UID, PID, PPID, STIME, TIME, CMD |
ps aux | USER, PID, %CPU, %MEM, VSZ, RSS, TTY, STAT, START, TIME, COMMAND |
De BSD-vorm ps aux heeft geen koppelteken. Het veld USER vermeldt het account waarvan het proces de rechten gebruikt. Een rootproces heeft toegang tot systeemmiddelen waar een proces van een gewone gebruiker niet bij kan.
Lees één regel
Bekijk dit voorbeeld uit ps aux:
www-data 2417 0.3 1.2 214560 48212 ? S 09:14 0:02 nginx: worker process
De eigenaar is www-data, de PID is 2417 en het CPU-gebruik is sinds de start gemiddeld 0,3%. Het proces neemt momenteel 1,2% van het RAM in. RSS is het aanwezige fysieke geheugen: 48.212 KiB, ongeveer 47,1 MiB. VSZ, 214.560 KiB, omvat ook virtuele adresruimte die niet in het RAM aanwezig is. Een grote VSZ alleen is geen bewijs van een geheugentekort.
Het ? betekent dat er geen besturende terminal is. Toestand S betekent slapend, meestal wachtend op werk. START is 09:14; TIME is twee seconden CPU-tijd. TIME is niet de verstreken tijd: een server kan dagen draaien en toch heel weinig CPU gebruiken.
Herken procestoestanden
| Toestand | Betekenis |
|---|---|
R | Draait of staat klaar voor CPU-tijd |
S | Slaapt terwijl het op een gebeurtenis wacht |
D | Slaapt ononderbreekbaar, vaak wachtend op opslag |
T | Gestopt of gepauzeerd |
Z | Zombieproces: beëindigd, wacht tot het bovenliggende proces de afsluitstatus ophaalt |
I | Inactieve kernelthread |
STAT kan vlaggen toevoegen: + voor een terminalgroep op de voorgrond, s voor een sessieleider, l voor meerdere threads, N voor een verlaagde CPU-prioriteit en < voor een verhoogde prioriteit. Slapen is normaal. Een zombieproces is al beëindigd en gebruikt geen CPU; door het nog een beëindigingssignaal te sturen, wordt de afsluitstatus niet opgehaald. Een groeiend aantal zombieprocessen wijst op een bovenliggend programma dat aandacht nodig heeft.
Beperk de zoekopdracht
pgrep -a nginx toont overeenkomende PID's en commandoregels. Patronen kunnen met meerdere namen overeenkomen: pgrep ssh kan zowel sshd als ssh-agent vinden. pgrep -u alice selecteert op eigenaar; pidof nginx zoekt op een programmanaam. Een pijplijn die ps via grep leidt, kan ook het grep-proces zelf tonen.
Voer voor de vijf grootste geheugengebruikers uit:
ps -eo pid,ppid,user,%mem,cmd --sort=-%mem | head -n 6
Er zijn zes regels omdat de eerste een kopregel is. ps -p 2417 controleert één PID. /proc/2417/status toont de naam, toestand, het bovenliggende proces en geheugengegevens. /proc is een virtuele weergave van de kernel, geen verzameling procesrapporten op schijf; de PID-directory verdwijnt wanneer het proces eindigt.
Belangrijkste punten
- Een proces is één draaiende instantie; de PID identificeert het zolang het bestaat.
ps -eftoont bovenliggende processen;ps auxvoegt CPU- en geheugenkolommen toe.- TIME meet de gebruikte CPU-tijd, terwijl START vastlegt wanneer het proces begon.
- RSS meet het aanwezige RAM; VSZ omvat ook ander virtueel geheugen.
- Slapende processen zijn normaal; zombieprocessen zijn al beëindigd.
pgrepbeperkt een zoekopdracht en/proc/PID/statustoont informatie van de kernel.
1.2 Bewaak CPU-gebruik, geheugen en systeembelasting met top, free en uptime
Een momentopname laat zien wat er is; herhaalde waarnemingen laten zien wat verandert. top combineert een actuele proceslijst met totalen voor CPU-activiteit, systeembelasting, geheugen en wisselruimte. Lees het overzicht en bekijk de drukke processen samen voordat je bepaalt welk systeemmiddel zwaar wordt belast.
Werk met top
Voer top uit. Druk op P om op CPU-gebruik te sorteren, M om op geheugen te sorteren, 1 om elke CPU te tonen, h voor hulp en q om af te sluiten. De commando's k en r sturen signalen en wijzigen nice-waarden. htop biedt een andere interactieve weergave, maar moet je mogelijk eerst installeren.
De proceskolommen omvatten PID, USER, PR, NI, VIRT, RES, SHR, toestand, %CPU, %MEM, TIME+ en COMMAND. RES is het aanwezige fysieke RAM, net als RSS in ps; VIRT omvat gereserveerde adresruimte. In de standaardmodus van top per CPU kan een proces met meerdere threads 400% bereiken door vier CPU's bezig te houden. Met I schakel je over naar een weergave die het gebruik door het aantal CPU's deelt.
Bepaal het soort CPU-activiteit
Het CPU-overzicht verdeelt de tijd in categorieën:
| Veld | Wat het aangeeft |
|---|---|
us, sy | Werk van gebruikersprogramma's en van de kernel |
ni | Gebruikerswerk met aangepaste nice-prioriteit |
id | Inactieve tijd |
wa | Inactieve tijd terwijl I/O nog niet is afgerond |
hi, si | Werk voor hardware- en softwareonderbrekingen |
st | Tijd die een virtuele machine aan de hostcomputer verloor |
Een hoog CPU-gebruik door gebruikersprogramma's wijst op rekenwerk. Een hoge wa met weinig gebruikerswerk vestigt de aandacht op wachten op opslag. In een virtuele machine wijst een hoge st op CPU-tijd die de hostcomputer niet beschikbaar stelde. Dit zijn verschillende oorzaken van een trage reactie.
Vergelijk de belasting met de CPU-capaciteit
uptime en top tonen de gemiddelde systeembelasting over de afgelopen 1, 5 en 15 minuten. Linux telt taken die kunnen draaien en taken die ononderbreekbaar slapen, waaronder taken die op opslag wachten. De belasting is geen CPU-percentage. nproc toont de CPU's die beschikbaar zijn voor het huidige proces, wat helpt bij het beoordelen van de capaciteit.
Stel dat nproc bij werk dat vooral CPU-tijd vraagt en weinig op opslag wacht 4 toont en de belasting 6.00, 5.20, 3.10 is. De recente belasting is 1,5 taken per CPU, dus werk heeft in de wachtrij gestaan. De waarde over de kortere periode is hoger dan die over de langere periode, wat op een recente stijging wijst. Op 16 CPU's zou een belasting van 6 veel lichter zijn. Een hoge belasting terwijl CPU's niets doen, kan ook door taken in toestand D komen.
Beoordeel geheugen met available
Voer free -h uit. De regel Mem bevat total, used, free, shared, buff/cache en available. Linux vult ongebruikt RAM met nuttige schijfcaches en kan een groot deel daarvan weer vrijmaken. Free telt volledig ongebruikt RAM; available schat hoeveel nieuw werk kan gebruiken zonder wisselruimte te gebruiken.
Een machine meldt bijvoorbeeld total 7.6Gi, used 3.1Gi, free 0.4Gi, buff/cache 4.6Gi en available 4.5Gi. De kleine waarde voor free wijst niet op een tekort: ongeveer 59% blijft beschikbaar. In huidige versies van procps is used gelijk aan total min available; free, used en cache vormen geen eenvoudige verdeling die je kunt optellen.
De achtervoegsels Ki, Mi en Gi zijn binaire eenheden. Een GiB is 1.073.741.824 bytes; een GB is 1.000.000.000 bytes. free -m gebruikt MiB en free -g hele GiB, waardoor kleine hoeveelheden door afronding onzichtbaar kunnen worden.
Wisselruimte verplaatst een deel van de geheugeninhoud naar tragere schijfopslag. Let op weinig beschikbaar geheugen in combinatie met een groeiend gebruik van wisselruimte. Als het geheugen uitgeput raakt, kan de OOM-killer van de kernel een proces beëindigen. Controleer met sudo journalctl -k op een OOM-melding voordat je aanneemt dat een applicatie zelf is vastgelopen.
Belangrijkste punten
- Gebruik in
topzowel het systeemoverzicht als de proceslijst. - De Linux-systeembelasting telt taken die kunnen draaien en ononderbreekbaar wachtende taken; het is geen percentage.
- Beoordeel de systeembelasting in verhouding tot de beschikbare CPU's en controleer of taken op opslag wachten.
- De kolom available is nuttiger dan free om te beoordelen hoeveel RAM nog beschikbaar is.
- Weinig beschikbaar geheugen en groeiend gebruik van wisselruimte wijzen op geheugendruk; OOM-gebeurtenissen staan in kernellogboeken.
1.3 Stop processen met signalen
Een signaal is een korte melding die aan een proces wordt afgeleverd. Het kan vragen om af te sluiten, werk pauzeren of een service vragen instellingen opnieuw te lezen. Het commando kill stuurt signalen; de naam betekent niet dat elk signaal de ontvanger beëindigt.
Kies het signaal
| Signaal | Doel |
|---|---|
SIGTERM | Verzoek om netjes af te sluiten; de standaard voor kill |
SIGKILL | Beëindiging afdwingen zonder opruimwerk door de applicatie |
SIGINT | Het voorgrondprogramma onderbreken, meestal met Ctrl+C |
SIGTSTP | Verzoek om te pauzeren, meestal met Ctrl+Z |
SIGSTOP | Een pauze afdwingen |
SIGCONT | Een gestopt proces voortzetten |
SIGHUP | Sluiting van de terminal melden; sommige services gebruiken het om te herladen |
SIGQUIT | Afsluiten, mogelijk met een geheugendump; Ctrl+\ stuurt dit signaal |
Het programma kan de meeste signalen afhandelen of negeren. SIGKILL en SIGSTOP kunnen niet worden opgevangen, geblokkeerd of genegeerd. kill -l toont namen en nummers. Veelgebruikte nummers op x86 en ARM zijn TERM 15, KILL 9, INT 2, HUP 1, QUIT 3, CONT 18, STOP 19 en TSTP 20. Met namen vermijd je architectuurafhankelijke nummers.
Stop één proces zorgvuldig
Stel eerst vast om welk proces het gaat. Met ps -p 5120 -o pid,user,stat,cmd bekijk je de PID, eigenaar, toestand en het commando. Vraag daarna om netjes af te sluiten:
kill -TERM 5120
kill 5120, kill -15 5120 en kill -s TERM 5120 sturen hetzelfde verzoek. Bij netjes afsluiten kan de applicatie werk opslaan, bestanden sluiten en vergrendelingsbestanden verwijderen. Geef de applicatie tijd om te reageren en voer daarna opnieuw ps -p 5120 uit. Als alleen de kopregel verschijnt, is het proces beëindigd.
Als hetzelfde actieve proces na het wachten nog steeds vastzit, is kill -KILL 5120 de gedwongen terugvaloptie. De applicatie krijgt dan geen kans om op te ruimen, waardoor niet-opgeslagen werk verloren kan gaan en tijdelijke bestanden kunnen achterblijven. Controleer de identiteit opnieuw voordat je een sterker signaal stuurt: PID's kunnen na beëindiging opnieuw worden gebruikt.
Controleer namen voordat je handelt
pkill selecteert op een naampatroon; killall selecteert een programmanaam. Beide sturen normaal SIGTERM. Bekijk een breed patroon eerst met pgrep -a fire voordat je pkill fire gebruikt: dat patroon kan meer processen selecteren dan je bedoelde. pkill -u bob selecteert alle processen van bob, niet één applicatie.
killall -HUP rsyslogd stuurt HUP naar de overeenkomende logprocessen. Het effect van HUP hangt af van de applicatie: controleer of die herladen ondersteunt voordat je het signaal als een opdracht tot herladen gebruikt. Gebruik voor een door systemd beheerde service sudo systemctl stop NAME; de beheerder handelt de procesgroep van de service af en ziet de gevraagde stop niet als een fout die automatisch moet worden hersteld.
Begrijp rechten en toestanden
Een gewoon account beheert normaal zijn eigen processen. Een poging om het proces van een ander account een signaal te sturen kan “Operation not permitted” opleveren; sudo geeft zo nodig rootrechten. Controleer het doel voordat je die rechten gebruikt, want als je de verkeerde service stopt, heeft dat gevolgen voor andere gebruikers.
Een proces in toestand D kan na SIGKILL zichtbaar blijven terwijl het wacht tot opslag reageert. Het signaal herhalen herstelt die opslag niet. Een zombieproces in toestand Z is al beëindigd; het bovenliggende proces moet de afsluitstatus ophalen. Daarom is het belangrijk de toestand te bekijken als het proces niet verdwijnt.
Sneltoetsen werken op de procesgroep op de voorgrond. Ctrl+C beëindigt het werk meestal; Ctrl+Z pauzeert het en behoudt het geheugen en de open bestanden. Sluiting van de terminal leidt vaak tot HUP en beëindiging van gekoppelde taken. Daarom moet je bewust omgaan met langdurige taken.
Belangrijkste punten
- SIGTERM vraagt om op te ruimen; SIGKILL dwingt beëindiging zonder opruimen af.
- Bekijk overeenkomsten met een patroon vooraf en controleer de PID voordat je een signaal stuurt.
- SIGSTOP pauzeert en SIGCONT hervat;
killkan meer dan beëindigen. - Een zombieproces kan niet opnieuw worden beëindigd en wachten op opslag kan beëindiging vertragen.
- Gebruik
systemctl stopvoor een beheerde service.
1.4 Voer taken op de achtergrond uit en stel prioriteiten in
Een voorgrondtaak houdt de terminal bezet totdat de taak klaar is of stopt. Een achtergrondtaak laat de shell tijdens de uitvoering een ander commando accepteren. Met taakbeheer wijzig je waar werk draait; met CPU-prioriteit wijzig je hoe het met ander werk concurreert.
Verplaats werk tussen voorgrond en achtergrond
Een en-teken start een commando op de achtergrond:
sleep 300 &
De shell kan [1] 6431 tonen. Hier is 1 het lokale taaknummer en 6431 de PID voor het hele systeem. jobs toont alleen de taken van deze shell. fg %1 brengt taak 1 naar de voorgrond. Als je die voorgrondtaak met Ctrl+Z pauzeert, hervat bg %1 die op de achtergrond. Zonder nummer kiezen fg en bg de taak met +.
Probeer de reeks met sleep 300: voer het op de voorgrond uit, druk op Ctrl+Z, voer bg uit, bekijk jobs, voer daarna fg uit en druk op Ctrl+C. “Stopped” betekent gepauzeerd, niet voltooid. Een gestopte taak gebruikt geen CPU, maar behoudt het geheugen en de open bestanden. Bash kan met “There are stopped jobs” waarschuwen wanneer je probeert af te sluiten.
Houd uitvoer en afmelden onder controle
Een achtergrondcommando kan nog steeds naar de terminal schrijven. Leid beide uitvoerstromen voor een langdurige taak om:
./report.sh > report.log 2>&1 &
De eerste omleiding stuurt normale uitvoer naar het bestand. 2>&1 stuurt foutuitvoer naar dezelfde bestemming. De laatste & geeft de prompt terug terwijl de taak draait.
Een taak op de achtergrond plaatsen beschermt die op zichzelf niet tegen het sluiten van de terminal. Gebruik het volgende om werk te starten dat SIGHUP negeert:
nohup ./long-task.sh > task.log 2>&1 &
Zonder expliciete uitvoeromleiding schrijft nohup uitvoer die voor de terminal is bestemd meestal naar nohup.out. In Bash verwijdert disown %1 een bestaande taak uit de takentabel van de shell, zodat Bash HUP niet aan die taak doorgeeft. Het programma heeft nog steeds bruikbare bestemmingen voor invoer en uitvoer nodig. Een programma dat permanent moet draaien, kun je beter als service beheren.
Geef interactief werk ruimte om te draaien
De nice-waarde geeft de prioriteit bij de CPU-planning voor gewone processen aan. Waarden lopen van -20, de hoogste prioriteit, tot 19, de laagste prioriteit; de gebruikelijke beginwaarde is 0. Hogere waarden geven concurrerend werk meer gelegenheid. Een proces met nice 19 kan een verder ongebruikte CPU nog steeds volledig benutten.
nice -n 10 xz -9 big.log
renice -n 15 -p 6431
Het eerste commando start compressie met een positieve aanpassing van de nice-waarde; vanaf de gebruikelijke waarde 0 wordt die 10. Het tweede wijzigt de nice-waarde van het actieve proces in 15. nice zonder -n past een aanpassing van 10 toe. Een gewone gebruiker kan de nice-waarde van een eigen proces doorgaans verhogen en daarmee de CPU-prioriteit verlagen. De prioriteit verhogen door de waarde te verlagen vereist normaal root, bijvoorbeeld sudo renice -n -5 -p 6431.
In top toont NI de nice-waarde; voor gewone processen die processortijd delen is PR meestal 20 plus NI. Nice 10 verschijnt daarom als PR 30. In ps aux duidt N op een verlaagde prioriteit en < op een verhoogde prioriteit. De nice-waarde beïnvloedt de concurrentie om CPU-tijd, niet de prioriteit voor schijftoegang; ionice beheert een afzonderlijk systeemmiddel.
Belangrijkste punten
&start werk op de achtergrond;jobs,fgenbggebruiken taaknummers die binnen de shell gelden.- Ctrl+Z pauzeert een taak; het beëindigt die niet.
- Gebruik uitvoeromleiding en
nohupbewust voor een langdurige terminaltaak. - Hogere nice-waarden verlagen de CPU-prioriteit bij concurrentie, niet de maximale snelheid op een verder ongebruikte CPU.
2Onderzoek hardware via de commandoregel
Hardware-informatie helpt je een compatibel pakket te kiezen, het gebruik van systeemmiddelen te interpreteren en een fout helder te beschrijven. Linux stelt de actieve kernel, CPU-indeling, het bruikbare geheugen en aangesloten apparaten beschikbaar via commandoregelhulpmiddelen. Je maakt onderscheid tussen logische CPU's en fysieke kernen, decimale opslagvermeldingen en binaire groottes, en een gedetecteerd apparaat en een apparaat met een werkend stuurprogramma. Dezelfde controles helpen wanneer de hardware virtueel is.
2.1 Bepaal welke processor, welk geheugen en welk systeem je gebruikt
Zoek voordat je software installeert of de benodigde capaciteit voor werk bepaalt uit wat het systeem werkelijk biedt. De architectuur bepaalt welke pakketten met machinecode draaien. De beschikbaarheid van CPU's helpt de systeembelasting verklaren en het bruikbare RAM begrenst welk werk in het geheugen past.
Maak onderscheid tussen kernel en distributie
| Commando | Informatie |
|---|---|
uname -r | Release van de actieve kernel, zoals 6.8.0-45-generic |
uname -m | Architectuur, zoals x86_64 of aarch64 |
uname -a | Alle velden van uname |
cat /etc/os-release | Naam en release van de distributie |
hostnamectl | Overzicht van hostcomputer, besturingssysteem, kernel en architectuur |
Ubuntu 24.04 is een distributierelease; een waarde zoals 6.8.0-45-generic duidt de kernel aan die daarin draait. Een nieuwe kernel installeren vervangt de actieve kernel niet onmiddellijk: dat gebeurt bij een herstart.
Architectuuraanduidingen verschillen tussen pakketfamilies. Debian-pakketten gebruiken amd64 voor de architectuur die uname als x86_64 meldt, en arm64 voor aarch64. RPM-pakketten gebruiken meestal rechtstreeks x86_64 en aarch64. Controleer vóór installatie of de gebouwde versie bij de machine past.
Tel kernen en logische CPU's
lscpu toont architectuur, model, sockets, kernen per socket, threads per kern en logische CPU's. Bij een uniforme CPU-indeling geldt:
Eén socket met zes kernen en twee threads per kern geeft 12 logische CPU's. Er zijn nog steeds zes fysieke kernen. Twee hardwarethreads delen systeemmiddelen binnen een kern, dus 12 logische CPU's garanderen niet tweemaal de prestaties van zes kernen.
nproc toont verwerkingseenheden die beschikbaar zijn voor het huidige proces; CPU-affiniteit of beperkingen van systeemmiddelen kunnen dit aantal kleiner maken dan het aantal voor de hele machine. /proc/cpuinfo geeft rechtstreeks CPU-gegevens. Op x86 telt grep -c ^processor /proc/cpuinfo de processorvermeldingen en tonen de vlaggen vmx of svm ondersteuning voor hardwarevirtualisatie. ARM toont andere velden.
Lees bruikbaar en geïnstalleerd geheugen
free -h geeft een handig RAM-overzicht. /proc/meminfo geeft details: MemTotal is bruikbaar RAM en MemAvailable schat de capaciteit die nieuw werk kan gebruiken. Dit bestand duidt de waarden aan met kB, maar het zijn kibibytes van elk 1.024 bytes.
Zo is MemTotal: 16303448 kB na tweemaal delen door 1.024 ongeveer 15,5 GiB. Een machine met 16 GiB aan fysieke modules kan minder bruikbaar RAM tonen omdat de firmware en kernel een deel reserveren.
Voer sudo dmidecode -t memory uit om geïnstalleerde modules en slots te bekijken. sudo dmidecode -t system toont door de firmware verstrekte gegevens over fabrikant, model en serienummer. Bij een virtuele machine toont het de virtuele hardware. sudo lshw -short biedt, indien geïnstalleerd, een compact hardwareoverzicht.
Controleer elke eis afzonderlijk
Stel dat software een 64-bit ARM-systeem, minimaal vier beschikbare CPU's en 8 GB RAM nodig heeft. Als uname -m de waarde aarch64 teruggeeft, voldoet het systeem aan de architectuureis. Als nproc 4 teruggeeft, voldoet het aan de CPU-eis. Een totaal van 3.7Gi is slechts ongeveer 4,0 GB, dus het geheugen is onvoldoende. Aan twee eisen voldoen compenseert niet dat aan de derde niet is voldaan.
Belangrijkste punten
- Gebruik
/etc/os-releasevoor de distributie enuname -rvoor de actieve kernel. - Architectuuraanduidingen van pakketten verschillen: Debian
amd64komt overeen metx86_64. - Sockets, kernen en hardwarethreads bepalen het aantal logische CPU's.
nproctoont de CPU's die voor het huidige proces beschikbaar zijn.- Bruikbaar RAM kan kleiner zijn dan het geïnstalleerde geheugen;
/proc/meminfogebruikt binaire kilobytes.
2.2 Toon schijven, PCI-apparaten en USB-apparaten met hun stuurprogramma's
Linux geeft hardwareapparaten namen onder /dev en publiceert zijn apparaatweergave onder /sys. Verschillende hulpmiddelen beantwoorden verschillende vragen: welke opslagapparaten bestaan er, welke bussen hebben apparaten gedetecteerd en welke stuurprogramma's bedienen ze?
Herken schijven en partities
SATA-, SAS- en USB-schijven verschijnen meestal als /dev/sda, /dev/sdb en met latere letters. Hun partities krijgen een nummer erbij, zoals /dev/sda1. NVMe gebruikt namen zoals /dev/nvme0n1, met /dev/nvme0n1p1 voor een partitie. Een virtuele machine kan /dev/vda gebruiken.
lsblk toont blokapparaten als een boom. TYPE onderscheidt een schijf van een partitie; RM geeft aan of een apparaat verwijderbaar is en RO of het alleen-lezen is. SIZE geeft de capaciteit en MOUNTPOINTS toont waar een apparaat wordt gebruikt. Kies extra details met:
lsblk -o NAME,SIZE,MODEL
lsblk -f
Met het eerste commando kun je model en grootte gemakkelijk vergelijken. Het tweede voegt bestandssysteemtype, label en UUID toe. Namen zoals sdb kunnen veranderen door de detectievolgorde. Controleer voordat je naar een schijf schrijft de identiteit aan de hand van meer dan de letter: schrijven naar het verkeerde apparaat vernietigt de gegevens erop.
Een schijf die als 512 GB wordt verkocht, bevat 512 miljard bytes. In GiB is dat ongeveer 476,8, wat lsblk toont als 476.8G. Het apparaat heeft geen capaciteit verloren: het etiket en de weergave gebruiken verschillende eenheden.
Zoek apparaten en gekoppelde stuurprogramma's
| Hulpmiddel | Waar je op let |
|---|---|
lspci | PCI- en PCI Express-apparaten, zoals netwerk- en opslagcontrollers |
lspci -k | Het gebruikte stuurprogramma en mogelijke kernelmodules |
lsusb | ID's en beschrijvingen van USB-apparaten |
lsusb -t | USB-verbindingen als boom, inclusief snelheden |
lsmod | Geladen kernelmodules |
modinfo e1000e | Informatie over één module |
Een USB-ID zoals 046d:c52b identificeert de leverancier en het product betrouwbaarder dan een brede naam zoals “draadloze ontvanger”. Maak in PCI-uitvoer onderscheid tussen Kernel modules, dat mogelijke modules noemt, en Kernel driver in use, dat een gekoppeld stuurprogramma aanwijst. Detectie alleen betekent niet dat het apparaat werkend wordt ondersteund.
De meeste stuurprogramma's kunnen als kernelmodules worden geladen: stukken kernelcode die zo nodig worden toegevoegd. Het laden of verwijderen van modules wijzigt de actieve kernel en vereist rootrechten. Sommige stuurprogramma's zijn in de kernel ingebouwd. Op ARM-borden zitten veel ingebouwde apparaten niet op PCI, dus een korte lijst van lspci hoeft niet te betekenen dat hardware ontbreekt.
Volg een aansluiting in het kernellogboek
Voer wanneer je een USB-schijf aansluit sudo dmesg | tail uit, of start sudo dmesg -w voordat je die aansluit. Een melding zoals [sdb] 60437492 512-byte logical blocks duidt de nieuwe schijf aan als /dev/sdb en geeft de capaciteit. Vermenigvuldiging van die aantallen blokken geeft 30.943.995.904 bytes: ongeveer 30,9 GB of 28,8 GiB.
Vergelijk daarna de nieuwe vermelding in lsblk met die melding en het apparaatmodel. Als een gedetecteerde adapter niet werkt, controleer dan het stuurprogramma met lspci -k en lees initialisatiefouten met dmesg. Een ontbrekende koppeling aan een stuurprogramma en een stuurprogramma dat een fout meldt, vragen om verschillende vervolgcontroles.
Belangrijkste punten
- Gebruik
lsblkvoor blokapparaten,lspcivoor PCI enlsusbvoor USB. - Schijfnamen volgen de detectievolgorde; controleer het apparaat voordat je ernaar schrijft.
- Een decimale schijf van 512 GB is ongeveer 476,8 GiB.
- Controleer na detectie van een apparaat het gekoppelde stuurprogramma en de kernelmeldingen.
3Installeer en beheer software met pakketbeheerders
Een pakketbeheerder verbindt softwarebestanden met hun versies, afhankelijkheden en vertrouwde bronnen. Als je het juiste hulpmiddel voor de distributie kiest, kun je software installeren en onderhouden zonder zelf elke bibliotheek bij te houden. Je leert de commandofamilies van Debian en Red Hat kennen, maakt onderscheid tussen pakketinformatie verversen en upgrades toepassen, en herleidt een geïnstalleerd commando tot het pakket en de transactie die het hebben geleverd.
3.1 Begrijp pakketten, repository's en afhankelijkheden
Een pakket bundelt softwarebestanden met informatie die wordt gebruikt om ze te installeren en te onderhouden. De metadata vermelden de versie, architectuur en vereiste pakketten en kunnen installatiescripts bevatten. Een pakketbeheerder houdt bij welke bestanden bij welk geïnstalleerd pakket horen.
Kies de juiste distributiefamilie
| Systemen | Pakketformaat | Repositoryhulpmiddel | Hulpmiddel op laag niveau |
|---|---|---|---|
| Debian, Ubuntu, Linux Mint | .deb | apt | dpkg |
| Fedora, RHEL, Rocky Linux, AlmaLinux, CentOS Stream | .rpm | dnf | rpm |
| openSUSE, SUSE Linux Enterprise | .rpm | zypper | rpm |
Arch Linux gebruikt pacman; Alpine Linux gebruikt apk. De oudere naam yum hoort bij de Red Hat-familie. Als je niet zeker weet welk systeem je hebt, lees dan cat /etc/os-release voordat je commando's kiest.
Een bestand zoals nginx_1.24.0-2_amd64.deb vermeldt nginx, de softwareversie, de revisie van het pakket en de architectuur. Deze velden helpen de pakketbeheerder een compatibele gebouwde versie te selecteren. Een bekende applicatienaam maakt niet elk gedownload pakket geschikt voor elke distributie.
Laat het hulpmiddel op hoog niveau afhankelijkheden oplossen
Een afhankelijkheid is een ander pakket dat de software nodig heeft, vaak een gedeelde bibliotheek. Bij de installatie van één applicatie kunnen daarom meerdere pakketten worden toegevoegd. Een hulpmiddel op hoog niveau zoals apt of dnf vindt een compatibele verzameling, downloadt die en vraagt het hulpmiddel op lager niveau om die te installeren.
dpkg en rpm werken met lokale pakketbestanden en onderhouden de database van geïnstalleerde pakketten. Ze halen ontbrekende afhankelijkheden niet uit repository's op. Als je er een bestand mee installeert, kunnen ontbrekende vereisten overblijven die je zelf moet oplossen. Hulpmiddelen op hoog niveau kunnen ook lokale bestanden installeren en daarbij hun vereisten uit geconfigureerde repository's oplossen.
Zoeken en informatie opvragen kan als gewone gebruiker. Installatie, verwijdering en upgrades wijzigen systeembestanden en vereisen normaal sudo. Het bevestigingsscherm biedt nuttige informatie: bekijk de extra pakketten en eventuele voorgestelde verwijderingen voordat je akkoord gaat.
Begrijp vertrouwen in repository's
Een repository biedt pakketbestanden en indexen die de beschikbare versies en afhankelijkheden beschrijven. De eigen repository's van een distributie bieden een verzameling die voor die release is gebouwd.
APT controleert ondertekende repositorymetadata en gebruikt de pakketcontrolesommen uit die metadata om de gedownloade bestanden te controleren. Het controleert normaal geen afzonderlijke handtekening op elk .deb-bestand. DNF controleert normaal de handtekeningen van RPM-pakketten van distributies; controle van handtekeningen van repositorymetadata wordt afzonderlijk ingesteld. Deze controles vormen een vertrouwensketen naar een vertrouwde uitgever en helpen manipulatie te detecteren.
Als je een repository van een derde toevoegt, vertrouw je ook op de software en installatiescripts van die uitgever. Verkrijg de ondertekeningssleutel via de officiële instructies van de uitgever. Omzeil handtekeningcontroles niet om een fout zoals “NO_PUBKEY” te passeren. Ook een bestand van een onbekende downloadpagina heeft een betrouwbare herkomst nodig; de pakketextensie alleen biedt dat vertrouwen niet.
Zoek op de juiste naam
Software- en pakketnamen kunnen verschillen. Apache wordt als apache2 verpakt op systemen uit de Debian-familie en als httpd op systemen uit de Red Hat-familie. Het commando dig komt uit bind9-dnsutils of bind-utils. Zoek voordat je aanneemt dat een commandonaam ook de pakketnaam is.
Andere installatiesystemen houden een afzonderlijke registratie bij. Snap, Flatpak en AppImage bundelen applicaties met veel afhankelijkheden; pip en npm beheren programmeerbibliotheken. Als je een Python-bibliotheek met pip installeert, wordt die geen door apt beheerd pakket.
Belangrijkste punten
- Gebruik de pakketfamilie en het repositoryhulpmiddel die bij
/etc/os-releasepassen. - Hulpmiddelen op hoog niveau halen afhankelijkheden op;
dpkgenrpmwerken met lokale pakketten en registraties. - Repository's bieden pakketindexen en een vertrouwensketen naar een uitgever.
- Pakketnamen kunnen verschillen van programmanamen en tussen distributies.
- Systeempakketbeheerders en beheerders voor applicaties of programmeertalen houden afzonderlijke registraties bij.
3.2 Installeer software, werk die bij en verwijder die met apt en dnf
Pakketonderhoud bestaat uit drie afzonderlijke taken: achterhalen wat beschikbaar is, gekozen wijzigingen toepassen en software verwijderen die niet meer nodig is. Lees de geplande transactie voordat je bevestigt, vooral wanneer pakketten worden verwijderd.
Ververs en upgrade
| Taak | Debian-familie | Red Hat-familie |
|---|---|---|
| Pakketlijsten verversen | sudo apt update | DNF ververst verouderde metadata automatisch |
| Upgrades toepassen | sudo apt upgrade | sudo dnf upgrade |
| nginx installeren | sudo apt install nginx | sudo dnf install nginx |
| nginx verwijderen | sudo apt remove nginx | sudo dnf remove nginx |
| Overbodige afhankelijkheden verwijderen | sudo apt autoremove | sudo dnf autoremove |
apt update upgradet geen software. Het downloadt actuele pakketlijsten. Voer daarna sudo apt upgrade uit om nieuwere versies te installeren. Het upgradecommando van DNF ververst verouderde repositorymetadata als onderdeel van zijn werk. DNF4 gebruikt dnf check-update om beschikbare wijzigingen te tonen; DNF5 gebruikt dnf check-upgrade.
apt upgrade verwijdert geen geïnstalleerd pakket om een upgrade te voltooien. Een pakket waarvoor zo'n wijziging nodig is, kan worden achtergehouden. sudo apt full-upgrade staat verwijderingen toe, dus bekijk het plan zorgvuldig. -y accepteert een transactie automatisch en neemt je de mogelijkheid om die interactief te beoordelen.
Installeer vanuit een repository of een lokaal bestand
Voer op Ubuntu sudo apt update uit en daarna sudo apt install htop. APT toont nieuwe pakketten en afhankelijkheden voordat het ze downloadt. htop --version controleert het geïnstalleerde programma. Gebruik op Fedora sudo dnf install htop.
Als je apt install voor een bestaand pakket uitvoert, kan het worden geüpgraded naar de huidige kandidaatversie; er verandert niets als die versie al is geïnstalleerd. Geef het pad op om een vertrouwd lokaal bestand te installeren:
sudo apt install ./app_2.1.0_amd64.deb
sudo dnf install ./app-2.1.0-1.x86_64.rpm
De ./ duidt een bestandspad aan. Daarentegen halen sudo dpkg -i file.deb en sudo rpm -i file.rpm ontbrekende afhankelijkheden niet op. Als dpkg onvervulde afhankelijkheden achterlaat, kan sudo apt --fix-broken install die oplossen; bekijk het voorgestelde herstel.
Verwijder software en instellingen bewust
remove van APT bewaart de beheerde systeemconfiguratie van het pakket; purge verwijdert die ook. Geen van beide verwijdert bestanden uit de homedirectory's van gebruikers. Autoremove richt zich op automatisch geïnstalleerde afhankelijkheden die niet meer nodig zijn voor geïnstalleerde pakketten. Dat is een andere beslissing dan één applicatie op naam verwijderen.
Bronvermeldingen van APT staan in /etc/apt/sources.list en /etc/apt/sources.list.d/; Ubuntu 24.04 gebruikt meestal ubuntu.sources in die directory. Ververs na het wijzigen van bronnen. DNF leest .repo-bestanden onder /etc/yum.repos.d/; dnf repolist toont ingeschakelde repository's.
Rond onderhoud netjes af
apt is ontworpen voor interactief gebruik. Scripts gebruiken doorgaans de stabielere interfaces van apt-get en apt-cache. Hun commando's omvatten dezelfde algemene taken, al kunnen standaardinstellingen verschillen.
Een nieuw geïnstalleerde kernel wordt na een herstart de actieve kernel. Programma's die vervangen bibliotheken gebruiken, moeten opnieuw worden gestart om de nieuwe code te laden. Ubuntu kan met /var/run/reboot-required aangeven dat een herstart nodig is.
Een pakketbeheervergrendeling betekent vaak dat een automatische update of andere pakketbewerking actief is. Wacht tot die klaar is; het verwijderen van het vergrendelingsbestand kan pakketregistraties beschadigen. Een rechtenfout wijst daarentegen op ontbrekende bevoegdheid, dus controleer of de bewerking sudo nodig heeft.
Belangrijkste punten
apt updateververst lijsten;apt upgradewijzigt geïnstalleerde software.- DNF ververst verouderde metadata tijdens een upgrade; DNF4 en DNF5 gebruiken verschillende namen voor de updatecontrole.
- APT remove bewaart beheerde systeemconfiguratie; purge verwijdert die.
- Gebruik een pad met apt of dnf om een lokaal bestand te installeren en afhankelijkheden op te lossen.
- Bekijk voorgestelde verwijderingen bij een volledige upgrade en afhankelijkheden die voor autoremove worden voorgesteld.
- Wacht tot de bewerking met de pakketbeheervergrendeling klaar is en start programma's of het systeem opnieuw wanneer bijgewerkte code dat vereist.
3.3 Zoek pakketten en bekijk geïnstalleerde software
Wanneer een commando ontbreekt of een versie verandert, kun je met pakketopvragingen vanuit het verschijnsel terugzoeken. Bepaal eerst of je repositoryinformatie, informatie over geïnstalleerde pakketten of het pakket van een specifiek bestand nodig hebt.
Zoek vóór installatie
apt search json en dnf search json doorzoeken pakketnamen en beschrijvingen. Bekijk een veelbelovend resultaat met apt show NAME of dnf info NAME. Deze tonen details zoals versie, grootte, beschrijving en repository. De uitvoer van show bij APT toont ook afhankelijkheden; vereisten bij DNF kun je opvragen met dnf repoquery --requires NAME.
Repositoryinformatie laat zien wat je zou kunnen installeren. Die stelt op zichzelf niet vast wat al is geïnstalleerd. apt policy NAME maakt onderscheid tussen de geïnstalleerde versie en de kandidaatversie, de versie die APT momenteel zou selecteren. apt list --upgradeable of dnf list --upgrades toont geïnstalleerde pakketten waarvoor updates beschikbaar zijn.
Raadpleeg geïnstalleerde registraties
| Vraag | Debian-familie | Red Hat-familie |
|---|---|---|
| Wat is geïnstalleerd? | apt list --installed of dpkg -l | dnf list --installed of rpm -qa |
| Welke versie van één pakket is geïnstalleerd? | dpkg -l nginx | rpm -q nginx |
| Welke bestanden komen van htop? | dpkg -L htop | rpm -ql htop |
| Bij welk pakket hoort dit geïnstalleerde bestand? | dpkg -S /usr/bin/htop | rpm -qf /usr/bin/htop |
In dpkg -l duidt de status ii een geïnstalleerd pakket aan. De richting van een opvraging is belangrijk: -L begint bij een pakket en toont de bestanden; -S begint bij een bestand en zoekt het bijbehorende pakket. Op RPM-systemen is het overeenkomstige onderscheid -ql tegenover -qf.
Herleid een commando tot het pakket
Stel dat which openssl de uitvoer /usr/bin/openssl toont. Op Debian duidt dpkg -S /usr/bin/openssl openssl aan als het bijbehorende pakket. apt policy openssl toont vervolgens de geïnstalleerde versie, kandidaatversie en repository's. Zo hoef je niet aan te nemen dat de naam van het commando altijd met het pakket overeenkomt.
Voor een ontbrekend commando is er mogelijk geen geïnstalleerd pakket om op te vragen. dnf provides /usr/bin/rsync doorzoekt bestandslijsten van repository's. Systemen uit de Debian-familie bieden het afzonderlijke hulpmiddel apt-file: nadat de index met sudo apt-file update is ververst, vindt apt-file search bin/rsync pakketten die het bestand leveren. Ubuntu kan ook een pakket voorstellen wanneer een commando niet wordt gevonden.
Verbind een fout met een transactie
APT registreert transacties in /var/log/apt/history.log; dpkg registreert handelingen op lager niveau in /var/log/dpkg.log. Op DNF4 toont dnf history transacties; DNF5 gebruikt dnf history list. dnf history info 12 toont de pakketten die in transactie 12 zijn gewijzigd.
sudo dnf history undo 12 vraagt om die transactie terug te draaien. Bekijk het plan: terugdraaien hangt ervan af of de benodigde pakketversies nog beschikbaar zijn en herstelt geen willekeurige applicatiegegevens. Lees voor de diagnose de geschiedenis voordat je nog een wijziging aanbrengt. Een recente upgrade van een bibliotheek kan verklaren waarom het gedrag van een programma is veranderd, ook al heeft niemand de hoofdapplicatie opnieuw geïnstalleerd.
Belangrijkste punten
- Maak onderscheid tussen repositoryversies en de werkelijk geïnstalleerde versie.
- Gebruik
dpkg -Lofrpm -qlom bestanden bij een pakket op te vragen. - Gebruik
dpkg -Sofrpm -qfom het pakket bij een geïnstalleerd bestand op te zoeken. - Voor een ontbrekend bestand moet je in repository's zoeken welk pakket het levert, niet bij welk geïnstalleerd pakket het hoort.
- De transactiegeschiedenis helpt een nieuw probleem met een recente pakketwijziging te verbinden.
4Beheer services met systemd
Services blijven nuttig werk doen nadat een gebruiker de terminal verlaat. systemd beheert hun opstart, huidige toestand en reactie op fouten en gebruikt unitbestanden om te beschrijven wat moet draaien. Je leest de status zonder die met de opstartconfiguratie te verwarren, beheert services nu en bij toekomstige opstartsessies en maakt kleine configuratiewijzigingen die pakketupdates overleven. Een eenvoudig servicebestand laat zien hoe deze instellingen samenhangen.
4.1 Begrijp systemd, units en de status van services
Een service, vaak een daemon genoemd, biedt een functie op de achtergrond, zoals webpagina's aanbieden of SSH-verbindingen accepteren. Een service heeft meestal geen terminal. Veel daemonnamen eindigen op d, zoals sshd en chronyd.
Zoek de servicebeheerder
Op de meeste gangbare distributies draait systemd als PID 1 en start het services in de vereiste volgorde. Controleer dit met ps -p 1 -o comm=. systemd kan processen bewaken, mislukte services herstarten en het verzamelen van hun logmeldingen regelen. Sommige distributies gebruiken een andere beheerder, zoals OpenRC van Alpine Linux.
systemd beheert units. Hun achtervoegsels duiden hun functie aan:
| Achtervoegsel | Functie |
|---|---|
.service | Een programma of taak uitvoeren en beheren |
.socket | Op een socket luisteren en zo nodig een service activeren |
.timer | Activering plannen |
.mount | Een aangekoppeld bestandssysteem vertegenwoordigen |
.target | Units in een benoemde systeemtoestand groeperen |
In servicecommando's is nginx een afkorting voor nginx.service. Namen verschillen: SSH gebruikt meestal ssh op Debian en Ubuntu en sshd op Fedora en RHEL. Apache heet apache2 of httpd. systemctl list-unit-files | grep ssh helpt de lokale naam te vinden.
Lees de twee belangrijke statusregels
Voer systemctl status nginx uit. Een voorbeeld kan bevatten:
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-10-21 09:14:03 UTC
Main PID: 2410 (nginx)
Loaded noemt het unitbestand en de instelling voor automatisch starten. Active meldt de huidige toestand en wanneer die begon. Main PID duidt het hoofdproces aan; recente logregels volgen. Een gewone gebruiker kan de status bekijken, maar voor inzage in systeemlogboeken kunnen extra rechten nodig zijn.
Active en enabled zijn onafhankelijk van elkaar. Active beschrijft het heden. Enabled betekent dat inschakelingskoppelingen zijn gemaakt, meestal zodat een doelunit de service bij het opstarten start. Een uitgeschakelde service kan nog steeds handmatig worden gestart of door een andere unit worden geactiveerd. Een ingeschakelde service kan gestopt of mislukt zijn.
Interpreteer de toestand nauwkeurig
| Toestand bij Active | Interpretatie |
|---|---|
active (running) | Het programma van de service draait |
active (exited) | Een voltooide taak wordt nog als actief beschouwd |
inactive (dead) | De service is niet actief |
failed | Een start of uitvoering is mislukt; bekijk het resultaat en de logboeken |
activating | Het starten is bezig |
De kleur van de statusstip helpt bij het snel bekijken, maar de tekst van de toestand geeft de bruikbare informatie. systemctl is-active nginx meldt de huidige toestand; systemctl is-enabled nginx meldt de instelling voor automatisch starten. static betekent dat de unit geen instructies voor inschakeling heeft en op een andere manier kan worden geactiveerd. masked betekent dat starten is geblokkeerd.
Kies het juiste overzicht
systemctl list-units --type=service toont momenteel geladen service-units met de standaardfiltering op toestand. Voeg --all toe om ook inactieve geladen units op te nemen, of --state=running om je op draaiende services te richten. systemctl --failed toont alleen mislukte units. systemctl list-unit-files --type=service toont geïnstalleerde servicebestanden en instellingen voor automatisch starten, inclusief services die nu niet draaien.
Belangrijkste punten
- systemd beheert units; een
.service-unit beschrijft een programma of taak. - Lees Loaded voor het unitbestand en de instelling voor automatisch starten, en Active voor de huidige toestand.
- Een ingeschakelde service kan gestopt zijn; een uitgeschakelde service kan draaien.
active (exited)kan een succesvol voltooide taak beschrijven.- Gebruik list-unit-files voor geïnstalleerde definities en list-units voor geladen units.
4.2 Start en stop services en schakel automatisch starten in en uit
Servicebeheer kent twee tijdschalen: wat nu moet draaien en wat later automatisch moet starten. Houd die beslissingen gescheiden wanneer je software installeert of een service herstelt.
Beheer de huidige toestand
| Commando | Effect |
|---|---|
sudo systemctl start nginx | Nu starten |
sudo systemctl stop nginx | Nu stoppen |
sudo systemctl restart nginx | Stoppen en starten, waardoor huidig werk wordt onderbroken |
sudo systemctl reload nginx | Een service die dit ondersteunt vragen de configuratie opnieuw te lezen |
sudo systemctl reload-or-restart nginx | Herladen indien ondersteund; anders herstarten |
Gebruik systemctl status nginx na een wijziging. Voor een stille controle geeft systemctl is-active --quiet nginx aan dat de service actief is via een succesvolle afsluitstatus. Het toont geen statustekst en is daardoor bruikbaar in shellvoorwaarden.
Ondersteuning voor herladen komt van de service. Test voor nginx een gewijzigde configuratie met sudo nginx -t vóór sudo systemctl reload nginx. Een geslaagde herlaadactie kan nieuwe instellingen toepassen zonder de service te stoppen. Bij een foutieve configuratie behoudt nginx tijdens herladen de oude actieve configuratie; herstarten met het foutieve bestand kan de service daarentegen uit laten vallen.
Stel automatisch starten in
sudo systemctl enable nginx maakt inschakelingskoppelingen; het start nginx nu niet. sudo systemctl disable nginx verwijdert die koppelingen; het stopt het huidige proces niet. Om beide wijzigingen tegelijk uit te voeren:
sudo systemctl enable --now nginx
sudo systemctl disable --now nginx
Het eerste schakelt de service in en start die; het tweede schakelt die uit en stopt die. Een Fedora-installatie van nginx laat de service meestal gestopt en uitgeschakeld, terwijl pakketinstallatie binnen de Debian-familie de service vaak start en inschakelt. Controleer na installatie de werkelijke toestand.
Na het starten van een webservice kan curl -I http://localhost de lokale reactie controleren. Een geslaagde lokale controle en toegang vanaf een andere machine zijn verschillende tests; een firewall kan toegang op afstand nog steeds blokkeren.
Blokkeer activering wanneer nodig
Uitschakelen verhindert niet dat een afhankelijkheid of socket een service activeert. Maskering blokkeert het starten door de unitnaam aan /dev/null te koppelen:
sudo systemctl mask bluetooth
sudo systemctl unmask bluetooth
Maskeren alleen stopt een al draaiende unit niet. Stop die ook als die moet ophouden met draaien. De maskering opheffen verwijdert de blokkade; het start de service niet en schakelt die niet in. Bij een startpoging meldt een gemaskeerde unit dat die is gemaskeerd.
Kies de standaardsysteemtoestand
Een doelunit (target) groepeert units. multi-user.target biedt de normale niet-grafische omgeving voor meerdere gebruikers, die vaak op servers wordt gebruikt. graphical.target voegt het bureaublad toe. systemctl get-default meldt de standaarddoelunit en sudo systemctl set-default multi-user.target wijzigt de doelunit die voor toekomstige opstartsessies wordt gekozen; het sluit het huidige bureaublad niet onmiddellijk.
sudo systemctl reboot herstart de machine en sudo systemctl poweroff sluit die af. Gebruik voor één service in plaats daarvan de eigen beheercommando's. Het beëindigen van de PID van een beheerde service kan een automatische herstart veroorzaken; een bewuste systemctl stop vertelt systemd dat de service gestopt moet blijven.
Belangrijkste punten
- Start en stop beïnvloeden het heden; enable en disable wijzigen inschakelingskoppelingen.
enable --nowendisable --nowcombineren beide tijdschalen.- Uitschakelen laat andere activeringsroutes toe; maskeren blokkeert het starten.
- Maskeren alleen laat een al draaiende service draaien.
- Test de applicatieconfiguratie vóór herladen of herstarten.
- De standaarddoelunit wijzigen bepaalt het gedrag bij toekomstige opstartsessies.
4.3 Lees unitbestanden en pas ze aan
Een unitbestand vertelt systemd hoe het een service moet uitvoeren. Lees de daadwerkelijk toegepaste configuratie met systemctl cat NAME: dit toont het basisbestand en eventuele aanvullende instellingen met hun paden.
Weet waar instellingen thuishoren
Meegeleverde units staan onder /usr/lib/systemd/system/, op systemen uit de Debian-familie ook bereikbaar als /lib/systemd/system/. Bestanden en aanvullende instellingen van de lokale beheerder horen onder /etc/systemd/system/, dat voorrang heeft. Een pakketupdate kan het eigen bestand vervangen, dus bewaar lokale wijzigingen in een aanvullend configuratiebestand.
Een unitbestand heeft secties en instellingen van de vorm Key=value:
| Sectie | Belangrijke instellingen |
|---|---|
[Unit] | Description=, volgorde met After=, afhankelijkheden met Wants= of Requires= |
[Service] | ExecStart=, User=, WorkingDirectory=, Environment=, Restart= |
[Install] | WantedBy=, gebruikt bij het inschakelen van de unit |
After=network.target bepaalt de volgorde; het start die doelunit niet zelf en garandeert geen internetverbinding. WantedBy=multi-user.target geeft enable opdracht een koppeling te maken onder multi-user.target.wants/. Een statische unit heeft geen instructies voor inschakeling, maar kan nog steeds door een andere unit worden geactiveerd.
Bouw een eenvoudige service
Maak voor een kleine testserver eerst /srv/hello met leesbare bestanden en een systeemaccount:
sudo useradd --system --no-create-home hello
Schrijf met Python 3 geïnstalleerd op /usr/bin/python3 het bestand /etc/systemd/system/hello-web.service:
[Unit]
Description=Hello web server
After=network.target
[Service]
ExecStart=/usr/bin/python3 -m http.server 8080 --directory /srv/hello
User=hello
Restart=on-failure
[Install]
WantedBy=multi-user.target
Voer sudo systemctl daemon-reload uit en daarna sudo systemctl enable --now hello-web. Bekijk systemctl status hello-web en vraag http://localhost:8080 op met curl. Het serviceaccount moet rechten hebben om de directory te lezen en de bovenliggende directory's te doorlopen.
Met de standaardwaarde Type=simple blijft het programma op de voorgrond, zodat systemd het kan volgen. ExecStart= accepteert een absoluut pad naar een uitvoerbaar bestand of een eenvoudige bestandsnaam uit het zoekpad van systemd. Een relatief pad met een schuine streep, zoals ./server, is ongeldig. Een programma dat zich via een fork naar de achtergrond verplaatst, heeft een geschikt servicetype nodig, zoals Type=forking.
Wijzig een meegeleverde instelling
sudo systemctl edit nginx opent een aanvullend configuratiebestand. Bijvoorbeeld:
[Service]
Restart=on-failure
RestartSec=5s
Opslaan via systemctl edit herlaadt de unitconfiguratie van systemd. Herstart de service om gewijzigde uitvoeringsinstellingen toe te passen. Als je bestanden rechtstreeks bewerkt, voer dan zelf sudo systemctl daemon-reload uit voordat je herstart. Dit herlaadt unitdefinities, niet de eigen configuratie van de applicatie.
Om een lijstinstelling zoals ExecStart te vervangen, moet eerst een lege regel ExecStart= vóór de nieuwe regel staan. sudo systemctl revert nginx verwijdert lokale aanvullende instellingen en herstelt de configuratie van de leverancier.
Restart=no laat een beëindigd proces gestopt. on-failure herstart na fouten die daarvoor in aanmerking komen; always omvat ook netjes afsluiten. Een bewuste systemctl stop onderdrukt automatisch herstarten. Snelle opeenvolgende fouten kunnen een ingestelde begrenzing van de startfrequentie bereiken. De standaardinstellingen van de beheerder staan vijf startpogingen in 10 seconden toe; lokale configuratie kan die wijzigen. Los de oorzaak op voordat je de foutstatus wist en het opnieuw probeert.
Belangrijkste punten
- Bewaar lokale instellingen onder
/etc/systemd/system/; bekijk ze metsystemctl cat. - Unitsecties scheiden beschrijving en afhankelijkheden, uitvoering en inschakeling.
- Voer een eenvoudige service op de voorgrond uit onder een geschikt account.
- Herlaad unitdefinities na rechtstreekse wijzigingen en herstart daarna om uitvoeringswijzigingen toe te passen.
- Een aanvullend configuratiebestand blijft behouden bij pakketupdates; lijstinstellingen kunnen een lege herstelregel nodig hebben.
- Het herstartbeleid bepaalt wat er gebeurt als processen eindigen, terwijl frequentielimieten eindeloze snelle pogingen voorkomen.
5Lees systeemlogboeken om problemen op te sporen en op te lossen
De toestand van een service vertelt dat er iets is mislukt; logboeken helpen verklaren waarom. Linux registreert meldingen in het systemd-logboek, applicatielogbestanden en de berichtenbuffer van de kernel. Je beperkt die registraties op service, opstartsessie, tijd en ernst en koppelt daarna de eerste bruikbare fout aan een specifieke controle. Bij een zorgvuldige reparatie wijzig je één oorzaak tegelijk en controleer je zowel de draaiende service als het gewenste opstartgedrag.
5.1 Raadpleeg het systemd-logboek met journalctl
Het systemd-logboek verzamelt kernel-, opstart- en servicemeldingen, inclusief uitvoer die beheerde programma's naar het logboek sturen. systemd-journald bewaart geïndexeerde binaire registraties. Lees ze met journalctl; een tekstbestandviewer zoals less kan de logboekbestanden zelf niet interpreteren.
Lees voldoende van de registratie
Toegang tot het systeemlogboek hangt af van rechten en lokaal beleid. Root en bevoegde groepen zoals systemd-journal of adm kunnen systeemvermeldingen lezen. Als een gewoon account slechts een beperkte verzameling ziet, gebruik dan sudo journalctl voor het systeemonderzoek.
De standaardweergave begint met oude meldingen in een paginagewijze tekstviewer. Gebruik de pijltjestoetsen om te bewegen, / om te zoeken en q om af te sluiten. Kies een gerichtere weergave:
| Optie | Effect |
|---|---|
-r | Nieuwste eerst |
-e | Naar het einde springen |
-n 50 | Laatste 50 registraties |
-f | Binnenkomende registraties volgen tot Ctrl+C |
--no-pager | Rechtstreeks tonen, handig voor pipes |
-n zonder getal selecteert tien vermeldingen. Statusuitvoer toont vaak alleen enkele recente regels, dus lees het logboek als die regels de fout niet verklaren.
Combineer filters voor unit, opstartsessie en tijd
sudo journalctl -u nginx -b selecteert nginx-registraties van deze opstartsessie. -b -1 selecteert de vorige opstartsessie; --list-boots toont bewaarde opstartregistraties. -k selecteert kernelmeldingen en gaat normaal uit van de huidige opstartsessie. Geef voor oudere kernelregistraties de opstartsessie expliciet op.
Tijdfilters accepteren relatieve tijden en volledige datums:
sudo journalctl -u nginx --since "2026-10-22 08:00" --until "2026-10-22 09:30"
--since today betekent sinds middernacht vandaag, terwijl --since "1 hour ago" een verschuivend tijdvenster geeft. Datum-tijdreeksen tussen aanhalingstekens blijven samen één argument. Een datum zonder tijd begint om middernacht.
Begrijp de prioriteitsgrens
Prioriteiten lopen van 0, noodsituatie, tot 7, foutopsporing. Daartussen liggen alarm, kritiek, fout, waarschuwing, kennisgeving en informatie. Lagere nummers zijn ernstiger. -p err omvat niveau 0 tot en met 3, niet alleen fout. Gebruik een expliciet bereik zoals -p err..warning om die niveaus te selecteren.
Een beperkt ernstfilter kan het bewijs verbergen dat je nodig hebt. SSH kan bijvoorbeeld meldingen over mislukte wachtwoorden op informatieniveau registreren. Op Ubuntu vindt sudo journalctl -u ssh --since today --grep "Failed password" overeenkomende meldingen zonder ze door een waarschuwingsgrens weg te laten vallen.
Een regel zoals “Failed password for invalid user admin from 203.0.113.45” vermeldt het gebruikte account en het bronadres. Het tijdstempel en de PID van het programma plaatsen de regel in de omliggende activiteit. -o short-iso maakt volledige datums gemakkelijk te vergelijken; -o verbose toont velden, -o json-pretty toont gestructureerde registraties en -x voegt beschikbare uitleg toe.
Weet wat een herstart overleeft
Persistente logboeken staan onder /var/log/journal/; vluchtige logboeken onder /run/log/journal/ verdwijnen bij afsluiten. De instelling Storage= in de configuratie van journald bepaalt het opslaggedrag. Eén geregistreerde opstartsessie kan betekenen dat oudere registraties nooit persistent zijn opgeslagen of al zijn verwijderd.
journalctl --disk-usage omvat actieve en gearchiveerde logboekbestanden. sudo journalctl --vacuum-size=500M verwijdert oude gearchiveerde bestanden tot een limiet van 500 MiB voor gearchiveerde bestanden. Actieve bestanden worden daarbij niet verwijderd, dus het totale gerapporteerde schijfgebruik kan groter blijven.
Belangrijkste punten
- Filter op unit, opstartsessie en tijd voordat je de prioriteit beperkt.
- Een prioriteitsgrens omvat ernstigere niveaus, niet alleen het genoemde niveau.
- Registraties op informatieniveau kunnen de oorzaak van een probleem bevatten.
- Persistente logboeken blijven behouden na een herstart; vluchtige logboeken niet.
- Opschonen verwijdert gearchiveerde bestanden, terwijl het schijfgebruik ook actieve bestanden meetelt.
5.2 Lees logbestanden in /var/log en kernelmeldingen
Het logboek is niet de enige logbron. Sommige systemen draaien ook rsyslog en applicaties kunnen eigen tekstlogboeken schrijven. De kernel bewaart een afzonderlijke berichtenbuffer in het geheugen. Kies de bron die de gebeurtenis heeft geregistreerd die je onderzoekt.
Zoek het juiste tekstlogboek
| Bron | Gebruikelijke locatie |
|---|---|
| Algemene meldingen Debian/Ubuntu, met syslog geconfigureerd | /var/log/syslog |
| Authenticatie Debian/Ubuntu | /var/log/auth.log |
| Kerneltekstlogboek Debian/Ubuntu | /var/log/kern.log |
| Algemene meldingen en authenticatie RHEL-familie | /var/log/messages, /var/log/secure |
| Acties van APT en dpkg | /var/log/apt/history.log, /var/log/dpkg.log |
| Acties van DNF | /var/log/dnf.log |
| Verzoeken en problemen van nginx | /var/log/nginx/access.log, /var/log/nginx/error.log |
Of een bestand aanwezig is, hangt af van de geïnstalleerde logservices en hun configuratie. Debian 12 en later vertrouwen meestal op het logboek, tenzij rsyslog is geïnstalleerd. Applicaties kunnen op zo'n machine nog steeds eigen logboeken bijhouden.
Lees een tekstbestand met sudo less /var/log/auth.log, bekijk het einde met sudo tail -n 20 /var/log/syslog of volg nieuwe regels met sudo tail -f /var/log/nginx/error.log. Gebruik sudo grep -i "error" /var/log/syslog om een woord ongeacht hoofdletters of kleine letters te selecteren.
Lees de velden en oudere bestanden
Een klassiek voorbeeld is:
Oct 22 08:01:17 web1 sshd[3141]: Accepted publickey for alice from 198.51.100.7 port 50522 ssh2
Dit geeft de tijd, hostcomputer, het programma met PID en de gebeurtenismelding. Sommige systemen gebruiken in plaats daarvan volledige ISO-tijdstempels met tijdzoneverschillen. De melding beschrijft een geslaagde aanmelding met een sleutel, geen mislukte wachtwoordpoging; als je alleen de programmanaam leest, mis je dat onderscheid.
Logrotatie beperkt de groei door oude bestanden te hernoemen, nieuwe te maken en uiteindelijk verlopen bestanden te verwijderen. De configuratie van logrotate staat in /etc/logrotate.conf en /etc/logrotate.d/. Een reeks zoals syslog, syslog.1 en syslog.2.gz omvat huidige en oudere registraties. Gebruik zless of zgrep voor met gzip gecomprimeerde tekst zonder die eerst uit te pakken. Als je alleen het huidige bestand doorzoekt, kun je de fout van gisteren missen.
Lees kernelgebeurtenissen
De ringbuffer van de kernel bevat recente meldingen en overschrijft de oudste vermeldingen wanneer de buffer vol raakt. De buffer registreert apparaatdetectie, fouten van stuurprogramma's, opslagfouten en beëindigingen door de OOM-killer. dmesg toont de buffer; gebruik sudo als de toegang is beperkt. dmesg -T geeft leesbare tijden, dmesg -l err,warn selecteert fouten en waarschuwingen en dmesg -w volgt nieuwe meldingen.
sudo journalctl -k leest kernelvermeldingen die het logboek bewaart. sudo journalctl -k -b -1 kan een vorige opstartsessie bereiken die niet meer in de actuele ringbuffer staat.
Als een Java-proces verdwijnt, verbindt een kernelregel zoals “Out of memory: Killed process 4810 (java)” de beëindiging met geheugendruk. Controleer free -h en top en verminder daarna de geheugenbehoefte of voeg capaciteit toe. Begin bij problemen met het starten van een service met het logboek van de unit; lees voor applicatiespecifieke details het eigen foutenlogboek van de applicatie.
Gebruik logrotatie of instellingen voor het bewaren van logboeken om logruimte te beheren. Een tekstlogboek met de hand verwijderen wist bewijsmateriaal en kan de schijfruimte bezet laten totdat het schrijvende programma het bestand sluit.
Belangrijkste punten
- Locaties van tekstlogboeken hangen af van de logconfiguratie; applicaties kunnen eigen bestanden bijhouden.
- Gebruik less, tail en grep voor tekstlogboeken en zless of zgrep voor oudere gecomprimeerde logboeken.
- Logrotatie verspreidt een gebeurtenisgeschiedenis over meerdere bestanden.
- dmesg toont de huidige kernelbuffer; het logboek kan eerdere opstartsessies bewaren.
- OOM-meldingen van de kernel kunnen verklaren waarom een applicatie zonder eigen foutmelding verdween.
5.3 Onderzoek en verhelp stapsgewijs problemen met een falende service
Herhaaldelijk herstarten verklaart een fout zelden. Begin bij het zichtbare verschijnsel, zoek de melding die de oorzaak noemt en wijzig één ding. Test de herstelde service daarna via zowel de beheerder als de functie die de service biedt.
Volg een herhaalbaar onderzoek
- Bevestig het verschijnsel: een lokaal webverzoek mislukt bijvoorbeeld.
- Voer
systemctl status NAMEuit en lees Active, Result en de afsluitcode. - Lees
sudo journalctl -u NAME -b, of de laatste 50 vermeldingen met-n 50 --no-pager. - Gebruik het eigen foutenlogboek en de configuratietest van de applicatie.
- Corrigeer één vastgestelde oorzaak en herhaal de relevante controle.
- Start of herstart, bekijk de status en test de daadwerkelijke functie.
- Vergelijk
systemctl is-enabled NAMEmet het gewenste opstartgedrag.
Lees de eerste betekenisvolle fout in de mislukte poging. Een latere regel “Failed to start” vat het resultaat samen; die hoeft de oorzaak niet te noemen. Als je de filters voor tijd en unit op elkaar afstemt, kun je de laatste poging beter van oudere fouten onderscheiden.
Onderzoek een poortconflict
Een herstart van nginx mislukt. Het logboek bevat “bind() to 0.0.0.0:80 failed (98: Address already in use).” Iets luistert al op die poort. Voer uit:
sudo ss -tlnp | grep ':80 '
Stel dat dit apache2 aanwijst. Als deze machine nginx moet gebruiken en Apache niet meer nodig is, stopt sudo systemctl disable --now apache2 Apache en verwijdert het de inschakelingskoppelingen. Daarna kan sudo systemctl start nginx de poort verkrijgen. Controleer systemctl status nginx en een lokaal webverzoek.
Die voorwaarde is belangrijk: verwijder geen noodzakelijke service alleen om een tweede te laten starten. Als beide moeten draaien, moet de luisterconfiguratie bewust worden gewijzigd. Het logboek wijst het conflict om het systeemmiddel aan, terwijl de beoogde functie van het systeem de reparatie bepaalt.
Onderzoek een configuratiefout
Stel dat het logboek een onverwachte sluitende accolade in /etc/nginx/sites-enabled/default:24 meldt. Voer sudo nginx -t uit; dit wijst hetzelfde bestand en dezelfde regel aan. Corrigeer de verkeerd geplaatste accolade, voer de test opnieuw uit en herstart pas nadat de test is geslaagd. Zo isoleer je de wijziging en voorkom je dat je een bekende werkende configuratie door een foutieve vervangt.
Gebruik de resultaatcode om de zoekopdracht te beperken
| Status of resultaat | Volgende controle |
|---|---|
203/EXEC | Pad naar het uitvoerbare bestand, uitvoerrecht en mogelijkheid om het te starten |
217/USER | Account in User= en mogelijkheid om de bijbehorende toegangsgegevens in te stellen |
1/FAILURE | Eigen foutmeldingen van de applicatie |
oom-kill | OOM-registraties van de kernel en geheugengebruik |
Een ontbrekend uitvoerbaar bestand en een programma dat start maar zijn instellingen afwijst, zijn verschillende fouten. Vergelijk bij “Permission denied” de uitvoer van ls -l en de toegang tot directory's met de voor de service ingestelde gebruiker. Controleer bij een volle schijf df -h; controleer bij weinig RAM free -h; bekijk bij CPU-druk top.
Als systemd “start request repeated too quickly” meldt, herstel dan eerst de oorzaak. Daarna wist sudo systemctl reset-failed NAME de foutstatus en tellers voor de startlimiet, zodat je de service opnieuw kunt starten. Alleen de teller herstellen repareert het programma niet.
Belangrijkste punten
- Bevestig het verschijnsel, bekijk de status en lees de eerste fout die de oorzaak aangeeft.
- Gebruik applicatiecontroles en wijzig één oorzaak tegelijk.
- Bij een bezette poort moet je vóór de reparatie vaststellen welk programma erop luistert.
- Afsluitcodes onderscheiden fouten bij uitvoering, gebruikersauthenticatie, applicaties en geheugen.
- Wis een startlimiet na het oplossen van de oorzaak en controleer daarna status, werking en beoogd opstartgedrag.
6Archiveer en comprimeer bestanden
Een archief verzamelt bestanden in één geheel; compressie verandert hoeveel ruimte dat geheel gebruikt. Als je deze taken uit elkaar houdt, zijn back-upcommando's gemakkelijker te lezen en te herstellen. Je bouwt en bekijkt tar-archieven, pakt ze uit in een gekozen directory en vergelijkt gzip, bzip2, xz en zip. De keuze van het formaat hangt af van snelheid, grootte, de behoefte om te delen en bestandsmetadata. Een gecontroleerd herstel levert sterker bewijs dan een vertrouwde bestandsnaam.
6.1 Maak tar-archieven, bekijk de inhoud en pak ze uit
Een archief bundelt bestanden en directory's met hun namen en metadata. Compressie vermindert het aantal bytes dat nodig is om gegevens op te slaan. Een ongecomprimeerd tar-archief bundelt bestanden zonder ze te comprimeren; als je een compressieprogramma toevoegt, ontstaan bestanden zoals .tar.gz, .tar.bz2 of .tar.xz.
Lees de opties als een korte zin
| Optie | Taak |
|---|---|
-c, -t, -x | Maken, inhoud tonen of uitpakken; kies één bewerking |
-f FILE | De naam van het archiefbestand opgeven |
-v | Namen of details van archiefitems tonen |
-z, -j, -J | gzip, bzip2 of xz gebruiken |
-C DIR | Van directory veranderen voor volgende items of voor het uitpakken |
GNU tar accepteert ook gecombineerde opties en de oudere vorm zonder koppelteken. Zet bij een gecombineerde groep f als laatste en plaats de bestandsnaam er direct achter. De hoofdletter J selecteert xz; de kleine letter j selecteert bzip2.
Maak een archief met bruikbare namen voor de items
tar -czvf site-backup.tar.gz -C /var/www site
Dit maakt site-backup.tar.gz in de huidige directory van de shell. Tar verandert de invoerlocatie naar /var/www en voegt daarna site toe, zodat opgeslagen namen beginnen met site/. Het bewaart de directorystructuur, toegangsrechten, eigenaarschapsmetadata en tijdstempels.
Rechtstreeks /var/www/site opgeven werkt ook. GNU tar verwijdert normaal de eerste schuine streep en slaat var/www/site/... op; bij het uitpakken wordt dat pad dan onder de bestemming opnieuw opgebouwd. Als je de invoerdirectory met -C kiest, krijg je een kortere, handigere indeling voor herstel.
Bekijk de inhoud vóór herstel
Voer tar -tzvf site-backup.tar.gz uit. Dit toont namen en metadata zonder uit te pakken. Controleer of alle items onder één directory staan. Zo niet, dan kunnen bestanden bij het uitpakken over de bestemming worden verspreid. GNU tar herkent bij het lezen veelgebruikte compressieformaten, dus tar -tvf site-backup.tar.gz werkt ook.
Om te herstellen in een bestaande lege directory:
tar -xzvf site-backup.tar.gz -C /tmp/restore
De bestemming moet al bestaan. Bij het uitpakken kunnen bestanden met overeenkomende namen worden overschreven, dus gebruik een lege hersteldirectory wanneer je een onbekend archief controleert. Om één item uit te pakken, geef je de naam precies zoals die in de lijst staat: tar -xzvf site-backup.tar.gz site/index.html.
Bescherm de archiefbestandsnaam en metadata
Het woord na -f is de naam van het archiefbestand. In tar -cfz backup.tar.gz docs behandelt tar z als die bestandsnaam en de latere woorden als invoer. Op vergelijkbare wijze laat tar -cf *.txt de shellexpansie het eerste tekstbestand als uitvoerarchief kiezen en kan het dat bestand overschrijven. Geef de naam van het archief altijd expliciet op.
Een gewone gebruiker herstelt bestanden onder eigen eigenaarschap; root kan geregistreerde eigenaren herstellen. Een back-up maken vereist leestoegang tot de bron. Gebruik voor beschermde systeembestanden een bevoegd commando zoals sudo tar -czf /root/etc-2026-10-22.tar.gz /etc en controleer de fouten op overgeslagen bestanden.
--exclude='*.log' slaat overeenkomende paden over. De optie -a van GNU tar kiest een compressieprogramma op basis van het achtervoegsel, zoals in tar -caf backup.tar.xz docs. Lees voordat je originelen verwijdert het archief met tar -tzf backup.tar.gz > /dev/null en controleer of de lijst de verwachte bestanden bevat. Een geslaagde leesactie controleert de leesbaarheid; als je een herstel bekijkt, controleer je ook of de gekozen inhoud bruikbaar is.
Belangrijkste punten
- Archiveren verzamelt bestanden en metadata; compressie verkleint de omvang.
- Kies één tar-bewerking en geef
-feen expliciete archiefbestandsnaam. -Cbepaalt de indeling van de invoer of de bestemming bij het uitpakken.- Bekijk de inhoud vóór het uitpakken en herstel in een lege directory om overschrijven te voorkomen.
- Voor back-ups is leesrecht nodig en root kan geregistreerd eigenaarschap herstellen.
- Controleer de leesbare inhoud en een herstel voordat je op het archief vertrouwt.
6.2 Comprimeer bestanden met gzip, bzip2, xz en zip
Compressieprogramma's verschillen in snelheid, grootte en hoe ze met originelen omgaan. Kies een formaat op basis van de taak: een logboek snel verkleinen, een Linux-back-up maken of een download voor gebruikers van verschillende besturingssystemen aanbieden.
Comprimeer een bestand en bewaar zo nodig het origineel
| Compressieprogramma | Achtervoegsel na compressie | Decompressiecommando |
|---|---|---|
gzip | .gz | gunzip of gzip -d |
bzip2 | .bz2 | bunzip2 of bzip2 -d |
xz | .xz | unxz of xz -d |
Deze hulpmiddelen vervangen een invoerbestand normaal door de gecomprimeerde versie. gzip access.log laat access.log.gz achter en verwijdert na succes het origineel. Voeg -k toe om het te bewaren. Hun vormen met -d maken de bewerking ongedaan.
Ze bouwen geen directoryarchief met meerdere bestanden. gzip project weigert een directory; recursieve gzip comprimeert de bestanden afzonderlijk. Om een directoryboom als één gecomprimeerd geheel te bewaren, maak je een tar-archief met het gekozen compressieprogramma.
Weeg tijd, geheugen en grootte af
Gzip is meestal snel, xz maakt vaak kleinere bestanden ten koste van meer tijd en geheugen en bzip2 ligt daar meestal tussenin. Resultaten hangen af van de invoer en instellingen. Niveaus van -1 tot -9 geven bij lage waarden voorrang aan snelheid en bij hoge waarden aan compressie. Standaardwaarden zijn 6 voor gzip en xz en 9 voor bzip2.
Tekstlogboeken krimpen vaak sterk. JPEG-afbeeldingen, MP4-video en gecomprimeerde archieven hebben meestal weinig baat bij nog een compressieronde. Opnieuw comprimeren kan CPU-tijd kosten zonder nuttige ruimtebesparing.
Bij één proef met 240 MiB aan logboeken leverde gzip 31 MiB en xz 22 MiB op. Die resultaten behouden ongeveer 12,9% en 9,2% van de oorspronkelijke grootte. Het kleinere bestand kostte bij die proef meer compressietijd; de cijfers voorspellen geen resultaten voor andere gegevens.
Lees en test gecomprimeerde inhoud
zcat, zless en zgrep lezen met gzip gecomprimeerde tekst; bzcat en xzcat verwerken hun respectieve formaten. Zo doorzoekt zgrep "error" /var/log/syslog.2.gz een door logrotatie ontstaan logbestand zonder een ongecomprimeerde kopie op schijf achter te laten.
Gebruik gzip -t file.gz of xz -t file.xz voor integriteitscontroles. Een achtervoegsel is slechts een naamgevingsconventie: file backup.bin kan gzip-inhoud herkennen, ook zonder .gz. sha256sum backup.tar.gz maakt een controlesom voor vergelijking na overdracht. Overeenkomende controlesommen tonen dat de kopieën overeenkomen, niet dat elk gewenst bronbestand is opgenomen.
Deel een directory met zip
ZIP bundelt en comprimeert terwijl de bronbestanden behouden blijven:
zip -r project.zip project
unzip -l project.zip
unzip project.zip -d /tmp/project
-r neemt de inhoud van de directory recursief op. unzip -l toont de inhoud; -d kiest de uitpakbestemming. Mogelijk moet je de commando's eerst installeren. ZIP is handig voor Windows- en macOS-gebruikers. Linux-ZIP-hulpmiddelen kunnen Unix-metadata opslaan, maar het herstellen van eigenaarschap en toegangsrechten op andere systemen werkt minder goed dan tar gebruiken voor een Linux-back-up.
Kies .tar.gz voor een gebruikelijke Linux-back-up, .tar.xz wanneer een kleinere download belangrijker is dan compressietijd, .zip om breed met desktopgebruikers te delen en gzip voor één groot tekstbestand. Bewaar bronbestanden totdat controles en een proefherstel aantonen dat het archief bevat wat je nodig hebt.
Belangrijkste punten
- Gzip, bzip2 en xz comprimeren afzonderlijke bestanden en vervangen normaal hun invoerbestanden.
- Gebruik
-kom een origineel te bewaren; gebruik tar om een directory te bundelen. - Compressiewinst en het benodigde gebruik van systeemmiddelen hangen af van invoer en instellingen.
- Gebruik lezers voor gecomprimeerde tekst en integriteitstests zonder alles uit te pakken.
- ZIP is handig om te delen; tar is gebruikelijk voor Linux-back-ups die metadata bewaren.
Linux-processen, pakketten en services: voorbeelden
1Zoek en beheer een drukke taak
17 stappen
- 1IntroductieBegin bij het actieve werk
Een terminal is traag geworden terwijl een langdurige compressietaak draait. Verbind voordat je iets stopt het zichtbare verschijnsel met een proces en een systeemmiddel.
Je gaat van een procesmomentopname naar actuele informatie over CPU en geheugen en beslist daarna hoe je werk pauzeert, stopt of een lagere prioriteit geeft. De PID identificeert het proces; het taaknummer van de shell heeft een ander doel wanneer je de taak tussen voorgrond en achtergrond verplaatst.
- 2UitlegZoek de eigenaar en identiteit
Voer
ps -efuit voor een momentopname van het hele systeem met PID en PPID. Een commando dat je vanuit je terminal start, is meestal een kindproces van die shell.Gebruik
ps auxvoor CPU- en geheugenkolommen. Een programma kan meerdere actieve instanties hebben, elk met een eigen PID. Controleer zowel het commando als de eigenaar wanneer je een doel kiest: een bekende naam kan meerdere processen aanduiden en een PID kan opnieuw worden gebruikt nadat het eerdere proces is beëindigd. - 3VoorbeeldLees CPU-tijd correct
Een ps-regel toont START
09:00, TIME0:08en toestandS. Het programma begon om 09.00 uur en heeft in totaal acht seconden CPU-tijd gebruikt. Het slaapt terwijl het op een gebeurtenis wacht.De verstreken tijd sinds de start staat niet in het veld TIME. Een service kan uren op verzoeken wachten en heel weinig CPU gebruiken. Gebruik
pgrep -a NAMEom relevante commandoregels te vinden en/proc/PID/statuswanneer je de gedetailleerde weergave van de kernel nodig hebt. - 4UitdagingInterpreteer een wachtende server
Een server is gisteren gestart. De ps-regel heeft TIME
0:12, TTY?en toestandS. Is dit bewijs dat de server het grootste deel van de dag niet heeft gedraaid? Leg de drie velden uit.---reveal---
Nee. De server heeft 12 seconden CPU-tijd gebruikt, heeft geen besturende terminal en slaapt momenteel. Wachten op verzoeken is normaal gedrag voor een service. Deze velden geven niet aan hoeveel uur de server beschikbaar is geweest of dat een bepaald verzoek is geslaagd.
- 5UitlegVolg het systeemmiddel dat verandert
Open
top. Druk opPvoor sortering op CPU,Mvoor geheugen en1voor afzonderlijke CPU's. Druk opqom af te sluiten.Lees het overzicht samen met de proceslijst. Veel CPU-werk van gebruikersprogramma's wijst op rekenwerk; een hoge
waricht de aandacht op nog niet afgeronde I/O en een hogestin een virtuele machine wijst op CPU-tijd die de hostcomputer niet aan het gastbesturingssysteem beschikbaar stelde. RES meet het aanwezige fysieke RAM; een grote VIRT-toewijzing alleen is een slechte maat voor fysiek geheugengebruik. - 6VoorbeeldVergelijk systeembelasting met CPU-capaciteit
Stel dat
nproc4 meldt en werk dat vooral CPU-tijd vraagt de belasting6.00, 5.20, 3.10toont. Bij weinig I/O-wachttijd betekent de recente belasting dat meer taken kunnen draaien dan vier CPU's tegelijk kunnen uitvoeren.De waarde over één minuut is hoger dan de gemiddelden over langere perioden, wat op een recente stijging wijst. De Linux-systeembelasting telt ook ononderbreekbaar wachtende taken, dus maak deze vergelijking opnieuw met het CPU-overzicht en de procestoestanden in beeld; het getal is geen CPU-percentage.
- 7KernpuntLees beschikbaar RAM vóór vrij RAM
free -hkan weinig volledig vrij RAM tonen terwijl meerdere GiB beschikbaar blijven. Linux gebruikt ongebruikt RAM voor cache en kan een groot deel daarvan voor nieuw werk vrijmaken.Available schat de capaciteit zonder wisselruimte te gebruiken. Let op weinig beschikbaar geheugen samen met toenemend gebruik van wisselruimte als sterker bewijs van geheugendruk. Als de kernel werk beëindigt omdat het geheugen uitgeput is, kan een OOM-registratie in
sudo journalctl -kde plotselinge beëindiging verklaren. - 8UitdagingKies welk systeemmiddel je onderzoekt
Een server heeft veel taken in toestand D, een hoge
wa, laag CPU-gebruik door gebruikersprogramma's en ruim voldoende beschikbaar RAM. Welk systeemmiddel onderzoek je eerst en waarom kan de systeembelasting toch hoog zijn?---reveal---
Onderzoek eerst opslag of andere I/O-wachttijden. Linux telt ononderbreekbare taken mee in de systeembelasting, zodat een hoge belasting samen kan gaan met inactieve CPU's. De geheugencijfers wijzen niet op een direct RAM-tekort en een hoge belasting alleen kan rekenwerk op de CPU niet als oorzaak aanwijzen.
- 9UitlegVraag eerst om netjes af te sluiten
Een signaal vraagt een proces om te handelen.
kill PIDstuurt SIGTERM, dat het programma de kans geeft de toestand op te slaan en gebruikte middelen vrij te geven. SIGKILL dwingt beëindiging af zonder de opruimcode van het programma.Controleer het doel, stuur TERM, geef het tijd en controleer opnieuw voordat je een sterker signaal stuurt. Een PID die nu bij een nieuw commando hoort, duidt een ander proces aan. Vraag bij een service onder toezicht van systemd via de beheerder om
sudo systemctl stop NAME. - 10VoorbeeldPauzeer en hervat bewust
kill -STOP 5120pauzeert proces 5120;kill -CONT 5120hervat het. Het proces behoudt tijdens de pauze zijn geheugen en open bestanden.Ctrl+Z stuurt een verzoek om te pauzeren naar werk op de voorgrond van de terminal, terwijl Ctrl+C een onderbreking stuurt die het normaal beëindigt. Een zombieproces is al beëindigd en kan niet opnieuw worden beëindigd. Een taak die ononderbreekbaar op opslag wacht, kan zichtbaar blijven tot het wachten is afgelopen, zelfs na een gedwongen beëindigingssignaal.
- 11UitdagingHoud een beheerde service gestopt
Een beheerd werkproces herstart nadat je de PID beëindigt. Je wilt het werkproces nu stoppen voor onderhoud. Welke actie past en waarom is het beëindigen van de nieuwe PID een slechte werkwijze?
---reveal---
Gebruik
sudo systemctl stop NAME. De servicebeheerder begrijpt dat deze stop bewust is en handelt de beheerde processen af. Een andere PID beëindigen kan dezelfde herstelcyclus herhalen, omdat systemd het beëindigen van het proces kan zien als reden om het werkproces te herstarten. - 12VoorbeeldVerplaats een taak zonder die kwijt te raken
Start
sleep 300op de voorgrond en druk daarna op Ctrl+Z. Bash meldt de taak als gestopt.bg %1hervat taak 1 en geeft de prompt terug, enfg %1brengt de taak weer naar de voorgrond.De
%1is een taakselectie binnen de shell, niet PID 1. Een gestopte taak is niet voltooid: die houdt systeemmiddelen vast. Als uitvoer van werk op de achtergrond de terminal verstoort, stuur die dan naar een bestand voordat je de taak laat doordraaien. - 13TipBereid een taak voor op afmelden
Gebruik voor een nieuwe langdurige taak
nohup ./long-task.sh > task.log 2>&1 &. Nohup zorgt dat de taak HUP negeert, omleiding plaatst beide uitvoerstromen in een bestand en het en-teken plaatst de taak op de achtergrond.Elk onderdeel heeft een eigen taak. Een en-teken alleen beschermt niet tegen sluiting van de terminal.
disown %1van Bash kan een bestaande taak uit de takentabel van de shell verwijderen, maar de invoer en uitvoer hebben nog steeds geschikte bestemmingen nodig. - 14UitlegVerlaag prioriteit zonder de snelheid te begrenzen
Start zwaar werk met
nice -n 10 COMMANDvanaf de gebruikelijke nice-waarde 0, of stel een actieve taak in metrenice -n 15 -p PID. Hogere nice-waarden verlagen de normale prioriteit bij CPU-planning.Het bereik loopt van -20 tot en met 19. Een gewone gebruiker kan eigen werk doorgaans minder concurrerend maken; de prioriteit verhogen vereist meestal root. Een taak met nice 19 gebruikt een ongebruikte CPU nog steeds volledig en de nice-waarde stelt geen prioriteit voor schijftoegang in.
- 15UitdagingPas een actieve achtergrondtaak aan
Je eigen compressietaak op de achtergrond heeft PID 9328 en nice 0. Je wilt concurrerend interactief werk meer gelegenheid geven om CPU-tijd te gebruiken zonder de taak te pauzeren. Welk commando en effect passen daarbij?
---reveal---
renice -n 15 -p 9328verlaagt de CPU-prioriteit door de nice-waarde te verhogen. De taak blijft draaien; bij concurrentie om CPU-tijd krijgt die minder gelegenheid. STOP sturen zou de taak volledig pauzeren, terwijl een negatieve nice-waarde de prioriteit zou verhogen. - 16UitdagingVerbind de informatie met een reactie
Een back-uptaak is actief met nice 0. Top toont dat die meerdere CPU's gebruikt, met weinig I/O-wachttijd en voldoende beschikbaar RAM; interactief werk is traag. Moet je de back-uptaak beëindigen om de interactieve taak te helpen?
---reveal---
Nee. De informatie wijst op concurrentie om CPU-tijd, dus door de nice-waarde van de back-uptaak te verhogen kun je het interactieve werk meer gelegenheid geven terwijl de back-uptaak doorgaat. Als stoppen later nodig wordt, stel dan opnieuw vast om welk proces het gaat en vraag om netjes af te sluiten voordat je dwang overweegt.
- 17SamenvattingStem de actie af op de informatie
Gebruik ps en pgrep om de identiteit vast te stellen en daarna top, free en de systeembelasting om de druk te begrijpen. Lees de toestand voordat je een proces interpreteert dat lijkt vast te zitten.
Netjes afsluiten, pauzeren, naar de achtergrond verplaatsen en de prioriteit wijzigen lossen verschillende problemen op. Laat systemd services beheren, maak onderscheid tussen lokale taken en PID's en controleer het resultaat nadat je actief werk hebt gewijzigd.
2Maak een bruikbaar hardwarerapport
10 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieVerzamel feiten die de eis beantwoorden
- 2UitlegBenoem de systeemlagen
- 3VoorbeeldTel de CPU-indeling
- 4UitlegVergelijk geïnstalleerd en bruikbaar geheugen
- 5UitdagingControleer een minimumeis
- 6VoorbeeldLees een opslagboom
- 7UitlegVerbind een apparaat met zijn stuurprogramma
- 8UitdagingHerken een nieuw aangesloten schijf
- 9UitdagingMaak onderscheid tussen capaciteit en ondersteuning door een stuurprogramma
- 10SamenvattingMaak het rapport specifiek
3Installeer software en onderzoek wat is veranderd
14 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieHoud bestanden en pakketregistraties verbonden
- 2UitlegKies het repositoryhulpmiddel
- 3KernpuntEen afhankelijkheid hoort in het plan
- 4UitdagingVerklaar de extra pakketten
- 5VoorbeeldVervers vóór installatie
- 6UitlegLees wat een upgrade toestaat
- 7TipBepaal wat bij verwijdering behouden blijft
- 8UitdagingMaak onderscheid tussen verversen en toepassen
- 9VoorbeeldHerleid een commando tot het bijbehorende pakket
- 10UitlegZoek verder dan geïnstalleerde bestanden
- 11UitdagingKies de richting van de opvraging
- 12VerbandVerbind een fout met recent onderhoud
- 13UitdagingHerstel op basis van de informatie
- 14SamenvattingControleer de toestand die je werkelijk nodig hebt
4Laat een service nu en na een herstart draaien
14 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieStel twee vragen over de toestand
- 2VoorbeeldLees Loaded en Active
- 3KernpuntEen actieve unit hoeft geen actief proces te hebben
- 4UitdagingInterpreteer uitgeschakeld maar draaiend
- 5UitlegKies nu, later of beide
- 6VoorbeeldPas een applicatieconfiguratie toe
- 7UitdagingBlokkeer een service en vergeet het proces niet
- 8UitlegLees de daadwerkelijk toegepaste unitdefinitie
- 9VoorbeeldBeschrijf een eenvoudige server op de voorgrond
- 10VoorbeeldZorg dat een aanvullende instelling upgrades overleeft
- 11UitdagingPas een rechtstreeks gewijzigd commando toe
- 12KernpuntHerstartregels respecteren een gevraagde stop
- 13UitdagingControleer een service na een unitwijziging
- 14SamenvattingHoud elke laag gescheiden
5Zoek de oorzaak van een falende service
13 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductieBegin met een waarneembaar verschijnsel
- 2UitlegSelecteer de service en poging
- 3VoorbeeldBehoud nuttige meldingen met lage prioriteit
- 4UitdagingDoorzoek de juiste opstartsessie
- 5UitlegZoek applicatielogboeken en bestanden uit logrotatie
- 6VoorbeeldOnderzoek een applicatie die zonder melding eindigt
- 7UitdagingKies een oudere tekstbron
- 8VoorbeeldBegin met de eerste fout die de oorzaak aangeeft
- 9VoorbeeldZoek welk programma een bezette poort gebruikt
- 10KernpuntGebruik resultaatcodes om de volgende controle te kiezen
- 11UitdagingHerstel na een fout met een startlimiet
- 12UitdagingControleer zonder bewijsmateriaal te verliezen
- 13SamenvattingLaat elke bevinding de volgende stap bepalen
6Maak een archief dat je kunt herstellen
11 stappen
Sla deze les op om elke Walkthrough stap voor stap te volgen.
- 1IntroductiePlan het herstel vóór het archief
- 2UitlegMaak onderscheid tussen verzamelen en verkleinen
- 3VoorbeeldMaak bruikbare relatieve paden
- 4VoorbeeldBekijk en pak uit in afzonderlijke stappen
- 5UitdagingVoorspel de indeling na het uitpakken
- 6TipHoud f naast de bestandsnaam
- 7UitlegWeet welke originelen overblijven
- 8VoorbeeldKies een formaat voor de taak
- 9UitdagingBewaar een logbestand tijdens het comprimeren
- 10UitdagingControleer zowel de kopie als de inhoud
- 11SamenvattingGebruik het passende formaat en de passende controles
Linux-processen, pakketten en services: oefenvragen
Set 1: Lees proces-, pakket- en servicetoestanden10 Oefenvragen
Vraag 1 van 10
06:20 en TIME 0:04. Wat geeft TIME aan?Toon antwoordVerberg antwoord
Vraag 2 van 10
Toon antwoordVerberg antwoord
Vraag 3 van 10
Toon antwoordVerberg antwoord
Vraag 4 van 10
Toon antwoordVerberg antwoord
Vraag 5 van 10
Toon antwoordVerberg antwoord
Vraag 6 van 10
sudo apt update uit. Wat is veranderd wanneer dit slaagt?Toon antwoordVerberg antwoord
Vraag 7 van 10
enabled en inactive (dead). Hoe moet je die combinatie lezen?Toon antwoordVerberg antwoord
Vraag 8 van 10
Toon antwoordVerberg antwoord
Vraag 9 van 10
Toon antwoordVerberg antwoord
Vraag 10 van 10
/srv/notes/day.txt, dat eigendom is van root, met tar -czf notes.tar.gz -C /srv notes. Als gewone gebruiker voer je daarna tar -xzf notes.tar.gz -C /tmp/inspect uit om het in die lege bestaande directory uit te pakken. Welk pad en welke eigenaar heeft het herstelde bestand normaal?Toon antwoordVerberg antwoord
/tmp/inspect. Een gewone gebruiker maakt herstelde bestanden normaal onder eigen eigenaarschap. Wie root als eigenaar verwacht, verwart geregistreerde metadata met de bevoegdheid die nodig is om die eigenaar te herstellen; wie een srv-voorvoegsel verwacht, houdt geen rekening met de directorywijziging bij het maken.Set 2: Pas dagelijkse Linux-onderhoudscommando's toe10 Oefenvragen
Sla deze les op om elk antwoord te zien en elke set te oefenen.
Vraag 1 van 10
[3] 9026 na het starten van een taak. Hoe breng je die taak naar de voorgrond?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 2 van 10
12.0, 8.0, 4.0. Wat is de beste interpretatie?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 3 van 10
Kernel driver in use. Wat moet je vervolgens onderzoeken?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 4 van 10
/usr/bin/less hoort?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 5 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 6 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 7 van 10
app.log.2.gz. Hoe kun je dat oudere bestand rechtstreeks doorzoeken?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 8 van 10
203/EXEC. Het logboek bevat geen melding dat de applicatie is gestart. Het unitbestand noemt /opt/worker/run, maar dat pad ontbreekt. Welke herstelvolgorde past bij deze informatie?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 9 van 10
report.log met gzip comprimeren en het ongecomprimeerde bestand bewaren. Welk commando past?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 10 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Set 3: Verbind informatie met de juiste actie10 Oefenvragen
Sla deze les op om elk antwoord te zien en elke set te oefenen.
Vraag 1 van 10
Z en het bovenliggende proces blijft draaien. Waarom verwijdert SIGKILL naar die PID sturen de vermelding niet?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 2 van 10
pgrep vindt twee gegevensexportprocessen: PID 8550 is jouw data-export --daily; PID 8551 is data-export --weekly van een andere gebruiker. Je wilt alleen je dagelijkse taak netjes laten afsluiten. Welke actie past?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 3 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 4 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 5 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 6 van 10
active (exited) na het succesvol voltooien van een eenmalige insteltaak. Wat betekent deze toestand?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 7 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 8 van 10
journalctl -p err?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 9 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 10 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Set 4: Onderzoek onderhoudsproblemen met verschillende hulpmiddelen10 Oefenvragen
Sla deze les op om elk antwoord te zien en elke set te oefenen.
Vraag 1 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 2 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 3 van 10
/dev/sdb. Vandaag is eerst een ander apparaat aangesloten en schrijven naar de verkeerde schijf zou benodigde bestanden wissen. Wat moet nu je doel bepalen?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 4 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 5 van 10
/usr/bin/scan. Je wilt achterhalen welk repositorypakket dat exacte pad levert. Welke opvraging past?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 6 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 7 van 10
After=network.target op zichzelf vast in een unitbestand?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 8 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 9 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 10 van 10
bundle/a.txt en bundle/b.txt. Je wilt alleen b.txt herstellen. Welke itemnaam moet je opvragen?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Set 5: Plan en controleer volledige Linux-reparaties10 Oefenvragen
Sla deze les op om elk antwoord te zien en elke set te oefenen.
Vraag 1 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 2 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 3 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 4 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 5 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 6 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 7 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 8 van 10
nginx -t vindt nu een syntaxisfout. Welke volgorde past beide bedoelde wijzigingen toe met een geteste configuratie?Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 9 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Vraag 10 van 10
Toon antwoordVerberg antwoord
Sla deze les op om dit antwoord te zien.
Kom je niet uit je eigen opgave? Huiswerkhulp
Kernbegrippen
A
aanvullend configuratiebestand
achtergrondtaak
activiteitsstatus
afhankelijkheid
afsluitstatus
apparaatbestand
/dev, waarmee software toegang krijgt tot een apparaat dat door de kernel wordt weergegeven./dev/nvme0n1p2 duidt een partitie aan en geen directory met bestanden.archief
archiefitem
architectuur
automatisch verwijderen van overbodige afhankelijkheden
B
begrenzing van de startfrequentie
beschikbaar geheugen
bestandsmetadata
blokapparaat
/dev. wordt weergegeven.C
compressie
configuratie herladen
configuratietest
nginx -t na een correctie geeft een reden om door te gaan met de geplande herlaadactie of herstart.controlesom
D
doelunit
E
ExecStart
./worker heeft een relatief pad met een schuine streep en is geen geldige vorm voor een uitvoerbaar bestand.F
firmwaretabel
fysieke processorkern
G
geïnstalleerde versie
gemiddelde systeembelasting
gzip
H
handtekeningverificatie
herladen van unitdefinities
herstart
herstartbeleid
systemctl stop de service gestopt houdt.I
I/O-wachttijd
inschakeling voor automatisch starten
K
kandidaatversie
kernellogboek
kernelmodule
L
logische CPU
logrotatie
M
maskering
/dev/null, inclusief handmatige starts en starts als afhankelijkheid.MemTotal
/proc/meminfo meldt. Geheugen dat vóór normaal gebruik is gereserveerd, telt niet mee.N
nice-waarde
O
OOM-killer
opschonen van het logboek
opzoeken bij welk pakket een bestand hoort
rpm -qf voor een geïnstalleerd uitvoerbaar bestand waarvan je op een RPM-systeem de pakketnaam niet kent.P
pakket
pakketbeheervergrendeling
pakketmetadata
persistent logboek
/var/log/journal, zodat eerdere opstartsessies kunnen worden opgevraagd totdat het bewaarbeleid ze verwijdert.PID
poortconflict
PPID
prioriteit
proces
sleep-commando's maken twee processen, ook al voeren ze hetzelfde programma uit.R
repository
ringbuffer
RSS
S
service
SIGKILL
signaal
SIGSTOP
SIGTERM
stuurprogramma
syslog
systemd
systemd-logboek
T
taaknummer
[2] 7164 selecteert fg %2 de taak; 7164 identificeert het proces op het niveau van het besturingssysteem.transactie
U
uitpakken
unit
nginx.service duidt de unit aan als een service en niet als een socket of doelunit.unitbestand
upgrade
UUID
V
verversen van de pakketlijsten
apt update kan een nieuwere applicatie als beschikbaar worden getoond terwijl de oude geïnstalleerd blijft.verwijderen inclusief configuratie
vluchtig logboek
/run/log/journal, zodat ze bij afsluiten verloren gaan in plaats van naar de volgende opstartsessie mee te gaan.voorgrondtaak
fg %2 werken sneltoetsen zoals Ctrl+C op de taak die nu op de voorgrond staat.W
wisselruimte
X
xz
Z
ZIP
zip -r om een directory en de inhoud ervan te verpakken voor collega's die Windows of macOS gebruiken.zombieproces
- 1Linux en opensource
- 2Linux-commandoregel
- 3Linux-pipes, omleiding en tekstverwerking
- 4Shellscripts
- 5Linux-gebruikers en toegangsrechten
- 6Linux-processen, pakketten en services
- 7Opslag en netwerken in Linux
Over deze les
Door StudeliFout melden
Maak je eigen Studiemateriaal
Maak van je aantekeningen, slides en documenten Leermodules, Oefenvragen, Flashcards en 6 andere tools.