Logrotate

Från DannoWiki
Version från den 29 juli 2026 kl. 12.53 av Danno (diskussion | bidrag)
Hoppa till navigeringHoppa till sök

Du har ett backupscript som körs dagligen, och som skapar en loggfil.
Låt oss kalla filen för "min_backupp.log" och som placeras i /var/log/
Linux-system har en inbyggd funktion som förhindrar att din hårddisk överfylls med gamla loggfiler.
Denna funktion heter logrotate och den skall vi använda nu.
Det räcker med en liten konfigurationsfil i mappen /etc/logrotate.d/

  • Skapa och öppna filen:

sudo vi /etc/logrotate.d/min_backupp

  • Skriv in nedanstående:
/var/log/min_backupp.log {
    weekly
    rotate 4
    compress
    delaycompress
    missingok
    notifempty
    create 0640 root root
}

Vad betyder alla dessa rader?

  • weekly: Roterar loggen en gång i veckan (du kan ändra till daily om du hellre vill att den roterar varje natt).
  • rotate 4: Sparar 4 gamla roterade loggfiler innan de äldsta börjar raderas (du har alltså 4 veckors historik sparad).
  • compress: Komprimerar de gamla loggfilerna till .gz för att spara utrymme.
  • delaycompress: Väntar med att komprimera den senast roterade loggen till nästa cykel (så att .1 är ren text, men .2.gz, .3.gz osv. är komprimerade).
  • missingok: Om loggfilen inte skulle finnas när logrotate körs så kraschar inte tjänsten, utan den går bara vidare.
  • notifempty: Roterar inte loggen om den är helt tom.
  • create 0640 root root: Skapar en helt ny, tom loggfil efter rotationen med rättigheterna 0640 och ägaren root.

Testa att det fungerar:
Torrkör i debug-mode, så ser du vad logrotate.d vill göra:
sudo logrotate -d /etc/logrotate.d/nextcloud-backup
Om du vill tvinga en rotation direkt för att se att filerna ändras (så du får din första .1-fil):
sudo logrotate -f /etc/logrotate.d/nextcloud-backup