Går tom for diskplass på Linux? Sjekk loggene dine!

Viktige takeaways

  • Linux-systemlogger kan ta opp en betydelig mengde diskplass.
  • Systemet ditt vil normalt komprimere eldre loggfiler for å spare diskplass.
  • Du kan bruke journalctl- eller tail -f-kommandoen til å vise logger og identifisere problematiske prosesser.

Selv om Linux-systemer har rykte på seg for å være smarte, kan det hende du opplever at du plutselig har lite diskplass. Hvorfor har dette skjedd? Den største ledetråden, og muligens den største synderen, vil bli funnet i Linux-systemloggene dine.

Hvorfor tar logger så mye diskplass?

Logger er en viktig del av å administrere Linux-systemet. Du kan se hva som skjer med maskinen din, og du kan også feilsøke problemer som oppstår. Linux-loggingsdemoner ligner på Event Viewer på Windows. Tømmerstokkene tar normalt ikke mye plass. Dette er fordi de fleste distroer automatisk vil administrere hvor mye plass de tar opp på disken din.

Linux-logger har historisk vært vanlige tekstfiler, men med mange store distribusjoner som flytter til systemd, er de binære filer som administreres av journald, en systemd-tjeneste. Alternativt vil distroen din enten bruke rsyslog eller syslog-ng.

  Hvordan spille Orwell på Linux

Fordi gamle logger ikke er relevante og store arkiver kan ta opp plass, vil systemet ditt vanligvis «rotere» dem – arkivere, komprimere og til slutt slette dem – for å spare diskplass til tingene du faktisk vil ha.

Selv om du kanskje ikke tror at logger vil ta mye plass, kan en funksjonsfeil prosess fylle opp loggene dine raskere enn systemet kan rotere dem.

Hvis du sjekker diskplassen din og finner at du plutselig begynner å bli tom, og du vet at du ikke har lastet ned noen store filer nylig, kan årsaken være et problem med Linux-systemloggene. Du må finne ut hva som fyller opp systemloggene dine og fikse det.

Du kan sjekke hvor mye diskplass du bruker med kommandoen du -h:

 du -h /var/log 

Du vil se en liste over hver underkatalog, sammen med den totale mengden plass den tar opp:

Finne loggene dine

Hvis du bruker en moderne Linux-distro med systemd, vil du bruke journalctl-programmet for å se loggene dine; journald lagrer vanligvis logger i katalogene /var/log/journal eller /run/log/journal, avhengig av distroen.

For å se loggene, skriv inn journald-kommandoen ved shell-ledeteksten. Det er andre nyttige kommandolinjealternativer. For å se oppstartsmeldingene, bruk alternativet -b:

 journalctl -b 

Du kan se systemets loggmeldinger i sanntid med -f-alternativet.

  Windows 10 lar deg laste inn en tilpasset Linux-kjerne

Hvis distroen din ikke bruker systemd, finner du loggene i /var/log-katalogen. Selv med systemd, lagrer noen programmer fortsatt loggene sine i denne katalogen. Dette er vanlige tekstfiler som du kan undersøke med et verktøy som en personsøker, for eksempel mindre.

For eksempel, for å lese systemloggen:

 less /var/log/syslog

Du vil se hele innholdet i loggfilen som kan inneholde tusenvis av linjer:

Du kan også overvåke den i sanntid med halekommandoens -f-alternativ:

 tail -f /var/log/syslog

Hvordan Linux roterer loggfiler

I /var/log-katalogen kan du legge merke til filer med navn som slutter på «log.N.gz,» der N er et tall. Dette er resultatet av at systemet roterer eldre logger. De fleste distroer har et verktøy som gjør dette automatisk, kalt «logrotate.» logrotate er vanligvis satt opp til å kjøre som en cron-jobb eller en systemd timer.

Som standard vil de fleste distros kjøre logrotate daglig. logrotate komprimerer eldre logger ved å bruke gzip, som det fremgår av filtypene «.gz». Den bruker en terskel, som alder eller filstørrelse, for å gjøre dette, og en annen terskel for til slutt å slette gamle loggfiler.

Standardalternativene for logrotate er tilstrekkelig for de fleste skrivebordsbrukere. Du kan justere logrorates oppførsel ved å redigere filen /etc/logrotate.conf som superbruker, i tillegg til å redigere systemets cron- eller systemd-timerfiler, men disse operasjonene er egentlig bare relevante for serveradministratorer.

  Hvordan legge til en GUI til Linux Shell Scripts

Du er bedre å fikse det som fyller opp loggene dine enn å justere konfigurasjonsfiler for å spare diskplass. Hvis du absolutt må endre konfigurasjonen, kan du lese logroter manualsiden.

Hvilke logger er trygge å slette?

Hvis alt annet feiler og du er desperat etter å frigjøre diskplass, kan du manuelt slette de arkiverte loggfilene som slutter på «.gz» før logrotate gjør det. Du kan bruke rm, men du må kjøre den som superbruker siden disse filene tilhører systemet:

 sudo rm /var/syslog/syslog.*gz 

Denne kommandoen vil slette alle filer som inneholder «syslog.» og slutter med «gz.»

Vær alltid veldig forsiktig når du kjører kommandoer via sudo, spesielt destruktive kommandoer som rm!

Du bør normalt ikke slette filer i systemkataloger uten å forstå implikasjonene fullt ut, men arkiverte logger vil ikke forårsake noen problemer hvis de mangler. Hvis du har et problem, må du kanskje se eldre logger.

Hvordan fikse det som fyller loggene dine

Den beste måten å finne ut hva som fyller opp loggene dine er å følge loggene med journalctl eller tail -f alternativene. Det beste alternativet er å gjenta feilmeldinger.

Du må håndtere den fornærmende prosessen for å spare diskplass. Hvis du ikke vet hva som forårsaker feilen, kan du søke på nettet eller be om hjelp på distroens støttekanaler. Når du endelig har fikset det, kan du slette de eldre loggene trygt. Du burde ha mye mer diskplass nå.