Bemästra Linux-kommandoraden och Bash-skriptning · Lektion

Automatisk loggrotering och rensning

Håll diskarna i gott skick genom att automatisera loggrotering och rensning av gamla filer med logrotate och schemalagda find-baserade skript.

Lektion 4 av 413 steg

Automatisk loggrotering och rensning är en gratis lektion i Bemästra Linux-kommandoraden och Bash-skriptning på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Bemästra Linux-kommandoraden och Bash-skriptning, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Bemästra Linux-kommandoraden och Bash-skriptning innehåller totalt 4 lektioner.

Problemet med växande loggar

Långvariga tjänster skriver loggar utan slut. Utan hantering fyller de disken och får systemet att krascha. Rotation och städning håller dem under kontroll.

du -sh /var/log/*

Vad loggrotation gör

Rotation byter namn på den aktuella loggen, skapar en ny tom logg och behåller ett begränsat antal äldre komprimerade kopior.

  • app.log blir app.log.1
  • äldre kopior komprimeras med gzip
  • de äldsta tas bort

Introduktion till logrotate

logrotate är standardverktyget i Linux som automatiserar rotation baserat på storlek eller ålder och konfigureras i /etc/logrotate.d/.

cat /etc/logrotate.conf

En grundläggande logrotate-konfiguration

Ett konfigurationsblock anger loggfilerna och rotationspolicyn.

/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

Förstå direktiven

Vanliga direktiv:

  • daily rotera varje dag
  • rotate 7 behåll 7 gamla filer
  • compress komprimera roterade loggar med gzip
  • missingok hoppa över om filen saknas

Testa utan att vänta

Tvinga fram en körning med -f eller gör en torrkörning med -d för att validera konfigurationen innan du litar på schemaläggningen.

logrotate -d /etc/logrotate.d/myapp
logrotate -f /etc/logrotate.d/myapp

postrotate-skript

Många tjänster behåller den gamla filreferensen öppen. Ett postrotate-block signalerar till tjänsten att öppna loggen igen efter rotationen.

/var/log/myapp/*.log {
    daily
    postrotate
        systemctl reload myapp
    endscript
}

Rensa gamla filer med find

För tillfällig städning kan find tillsammans med -mtime hitta filer som är äldre än N dagar och ta bort dem.

find /var/log/myapp -name "*.log" -mtime +30 -delete

Ett säkert städskript

Samla städningen i ett skript som loggar vad det tar bort, så att du får ett revisionsspår.

#!/bin/bash
DIR=/var/backups
find "$DIR" -name "*.tar.gz" -mtime +14 -print -delete \
  >> /var/log/cleanup.log 2>&1

Schemalägga städningen

Låt logrotate hantera rotationen, eftersom den redan drivs av cron, och schemalägg egna städskript med en egen crontab-post.

# crontab -e
30 2 * * * /usr/local/bin/cleanup.sh

Övervaka diskanvändningen

Lägg till en kontroll som varnar när en partition överskrider ett tröskelvärde så att städningen aldrig körs för sent.

USAGE=$(df --output=pcent / | tr -dc "0-9")
[ "$USAGE" -gt 90 ] && echo "Disk over 90%" | mail -s alert root

Snabbkontroll

Testa dina kunskaper om automatisering.

Sammanfattning

Du har automatiserat logghanteringen:

  • logrotate roterar efter ålder eller storlek med rotate, compress och postrotate
  • Validera med -d eller -f
  • Använd find -mtime +N -delete för anpassad städning
  • Schemalägg med cron och använd varningar om diskanvändningen som skydd
Gratis att börja

Lär dig Bash med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
22
Lektioner
88

Vanliga frågor

Är lektionen ”Automatisk loggrotering och rensning” gratis?

Ja – hela texten till ”Automatisk loggrotering och rensning” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Bemästra Linux-kommandoraden och Bash-skriptning, kan Ni uppgradera till CoddyKit PRO. Kursen i Bemästra Linux-kommandoraden och Bash-skriptning innehåller totalt 4 lektioner.

Vad lär jag mig i ”Automatisk loggrotering och rensning”?

Håll diskarna i gott skick genom att automatisera loggrotering och rensning av gamla filer med logrotate och schemalagda find-baserade skript. Ni övar på Bemästra Linux-kommandoraden och Bash-skriptning med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Bemästra Linux-kommandoraden och Bash-skriptning?

Du behöver inga förkunskaper. Utbildningen i Bemästra Linux-kommandoraden och Bash-skriptning på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Automatisk loggrotering och rensning”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Bemästra Linux-kommandoraden och Bash-skriptning-lektionen?

Ja. Varje Bemästra Linux-kommandoraden och Bash-skriptning-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Schemalägg uppgifter med Cron
  2. Automatisera systemadministration
  3. Projekt: avancerad skriptning
  4. Automatisk loggrotering och rensning
← Tillbaka till Bemästra Linux-kommandoraden och Bash-skriptning