Viktiga punkter
- Loggfiler i Linux kan uppta en avsevärd mängd diskutrymme.
- Systemet komprimerar automatiskt äldre loggfiler för att optimera diskutrymmesanvändningen.
- Använd kommandona
journalctl
ellertail -f
för att granska loggar och identifiera processer som orsakar problem.
Linux-system är kända för sin effektivitet, men det är inte ovanligt att plötsligt upptäcka att diskutrymmet är fullt. Vad kan vara orsaken? Ofta är svaret att finna i systemets loggfiler.
Varför loggar tar upp så mycket utrymme
Loggfiler är viktiga för att övervaka och felsöka ett Linux-system. De ger detaljerad information om systemets aktiviteter, liknande Event Viewer i Windows. Normalt tar loggfiler inte upp överdrivet mycket utrymme, eftersom de flesta distributioner hanterar deras lagring automatiskt.
Historiskt sett har loggfiler i Linux varit textbaserade. Dock har många större distributioner övergått till systemd, vilket innebär att loggarna hanteras binärt av journald, en systemd-tjänst. Alternativt kan distributionen använda rsyslog eller syslog-ng.
För att undvika att gamla loggar tar upp för mycket plats, genomför systemet vanligtvis en process kallad ”log rotation”. Detta innebär att loggarna arkiveras, komprimeras och slutligen tas bort, vilket frigör diskutrymme för viktigare data.
Trots att loggar normalt inte tar upp mycket utrymme, kan en felaktig process snabbt fylla loggarna och överbelasta systemets rotationsmekanismer. Om du upplever brist på diskutrymme, utan att ha laddat ner stora filer, är det troligt att problemet ligger i dina loggfiler. Då måste du identifiera och åtgärda orsaken.
Du kan kontrollera diskutrymmesanvändningen med kommandot du -h
:
du -h /var/log
Detta visar en lista över underkataloger och hur mycket diskutrymme var och en upptar:
Hitta dina loggar
Om du använder en modern Linux-distribution med systemd, används journalctl
för att granska loggar. Journald lagrar vanligtvis loggar i /var/log/journal
eller /run/log/journal
, beroende på distribution.
För att se loggarna, använd journalctl
i terminalen. Det finns flera användbara kommandoradsalternativ. Exempelvis, för att se startmeddelanden, använd -b
:
journalctl -b
Du kan även se systemets loggmeddelanden i realtid med alternativet -f
.
Om din distribution inte använder systemd, lagras loggarna i /var/log
. Vissa program lagrar sina loggar där även med systemd. Dessa är textfiler som kan granskas med verktyg som less.
För att till exempel läsa systemloggen:
less /var/log/syslog
Detta visar hela innehållet i loggfilen, som kan vara flera tusen rader lång:
Du kan övervaka loggen i realtid med kommandot tail
och dess -f
-alternativ:
tail -f /var/log/syslog
Hur loggrotation fungerar i Linux
I katalogen /var/log
kan du se filer som slutar på .log.N.gz
, där N är ett nummer. Det är resultatet av loggrotation. De flesta distributioner använder verktyget ”logrotate” för att automatisera detta. Logrotate är vanligtvis schemalagd att köras regelbundet via cron eller systemd timers.
Som standard körs logrotate dagligen. Äldre loggar komprimeras med gzip, vilket indikeras av filändelsen .gz
. En tröskel, baserad på ålder eller filstorlek, avgör när loggarna ska roteras och komprimeras, och en annan tröskel när de ska tas bort.
Standardinställningarna för logrotate är tillräckliga för de flesta användare. Du kan justera logrorates inställningar genom att redigera filen /etc/logrotate.conf
som superanvändare, samt dina cron- eller systemd-timer filer, men detta är oftast relevant för serveradministratörer.
Det är bättre att åtgärda det som fyller loggarna istället för att ändra konfigurationsfiler för att spara utrymme. Om det är nödvändigt kan du läsa logrotate manualen.
Vilka loggar är säkra att ta bort?
Om du snabbt behöver frigöra diskutrymme kan du manuellt ta bort arkiverade loggfiler med ändelsen .gz
innan logrotate gör det. Du kan använda rm
, men du måste köra det som superanvändare, eftersom dessa filer tillhör systemet:
sudo rm /var/syslog/syslog.*gz
Detta kommando tar bort alla filer som innehåller ”syslog.” och slutar med ”.gz.”.
Var försiktig när du kör kommandon via sudo
, särskilt destruktiva kommandon som rm
!
Det är inte rekommenderat att ta bort filer i systemkataloger utan att förstå konsekvenserna. Dock kommer borttagna arkiverade loggar inte att orsaka några problem. Men tänk på att du kan behöva hänvisa till äldre loggar vid problem.
Så här åtgärdar du det som fyller dina loggar
Det bästa sättet att identifiera orsaken till fulla loggar är att övervaka loggarna med journalctl
eller tail -f
. Leta efter felmeddelanden som upprepas.
Du måste åtgärda den process som orsakar loggarna att fyllas. Om du inte vet orsaken, kan du söka på internet eller fråga i distributionens supportkanaler. När problemet är löst kan du ta bort de gamla loggarna. Du bör nu ha mer diskutrymme.