Sådan roterer du logfiler med logrotate for Linux-programmer uden HUP-signal support

Hvordan kan en logfil, der modtager output fra et Linux-program via et shell script, roteres (maksimal størrelse, skift til en anden fil, behold kun et begrænset antal filer) ved brug af logrotate, når programmet ikke håndterer HUP-signaler?

For at rotere en logfil for et Linux-program, der ikke håndterer HUP-signaler, skal du installere logrotate, oprette en konfigurationsfil, teste konfigurationen, køre logrotate manuelt og sikre, at cron-tjenesten er aktiveret.

Sådan roteres en logfil med logrotate for et Linux-program, der ikke håndterer HUP-signaler

For at rotere en logfil, der modtager output fra et Linux-program via et shell script, og hvor programmet ikke håndterer HUP-signaler, kan du bruge logrotate. Følg disse trin:

  1. Installer logrotate:

    Hvis logrotate ikke allerede er installeret, kan du installere det ved at køre følgende kommando:

    sudo apt-get install logrotate
  2. Opret en logrotate konfigurationsfil:

    Opret en konfigurationsfil for logrotate, f.eks. /etc/logrotate.d/myprogram. Indsæt følgende indhold i filen:

    
    /var/log/myprogram.log {
        size 10M
        rotate 5
        copytruncate
        compress
        delaycompress
        missingok
        notifempty
    }
        
    • size 10M: Roter logfilen, når den når 10 MB.
    • rotate 5: Behold kun de seneste 5 roterede logfiler.
    • copytruncate: Kopier den aktuelle logfil og tøm den derefter. Dette er nyttigt, når programmet ikke kan håndtere HUP-signaler.
    • compress: Komprimer de roterede logfiler for at spare plads.
    • delaycompress: Forsink komprimeringen af den seneste roterede logfil til næste rotation.
    • missingok: Ignorer fejl, hvis logfilen mangler.
    • notifempty: Roter ikke logfiler, der er tomme.
  3. Test logrotate konfigurationen:

    For at sikre, at konfigurationen fungerer korrekt, kan du teste den ved at køre:

    sudo logrotate -d /etc/logrotate.d/myprogram

    Dette vil vise, hvad logrotate vil gøre, uden faktisk at udføre rotationen.

  4. Kør logrotate manuelt:

    For at køre logrotate manuelt og rotere logfilerne med det samme, brug:

    sudo logrotate -f /etc/logrotate.d/myprogram
  5. Automatiser logrotate:

    Logrotate kører normalt automatisk via cron. Sørg for, at cron-tjenesten er aktiveret og kører:

    sudo systemctl enable cron
    sudo systemctl start cron

Ved at følge disse trin kan du effektivt rotere logfiler for et Linux-program, der ikke håndterer HUP-signaler, ved hjælp af logrotate.

Opret din første opgave på få minutter

Spar dig selv for besvær og kom igennem din to-do liste i dag

1

Beskriv din opgave

2

Modtag bud

3

Få løst din opgave

opgaver platform services

Møbelsamling

Hjælp med at samle Ikea klædeskab

opgaver platform services

Maler

Klargøring af lejlighed til flyttesyn

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Havearbejde

Beskæring af 4 større træer

opgaver platform services

IT support

Geninstallering af windows + programmer

opgaver platform services

Elektriker

Installation af Sonos musikanlæg i hus

opgaver platform services

Rengøring

Ugentlig rengøring af lejlighed (114kvm)

opgaver platform services

Flyttehjælp

Flytning af 150 kvm hus til Roskilde fra København

opgaver platform services

Elektriker

Opsætning af lamper i stue og soveværelse

opgaver platform services

Catering

3-retters menu til 14 mennesker