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.
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.confEn 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:
dailyrotera varje dagrotate 7behåll 7 gamla filercompresskomprimera roterade loggar med gzipmissingokhoppa ö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/myapppostrotate-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 -deleteEtt 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>&1Schemalä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 rootSnabbkontroll
Testa dina kunskaper om automatisering.
Sammanfattning
Du har automatiserat logghanteringen:
- logrotate roterar efter ålder eller storlek med
rotate,compressochpostrotate - Validera med
-deller-f - Använd
find -mtime +N -deleteför anpassad städning - Schemalägg med cron och använd varningar om diskanvändningen som skydd
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
- Schemalägg uppgifter med Cron
- Automatisera systemadministration
- Projekt: avancerad skriptning
- Automatisk loggrotering och rensning