GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare Logrotate per gestire i file di registro

Logrotate è un software preinstallato nella maggior parte delle distribuzioni Linux, che consente di gestire il salvataggio a lungo termine e l'organizzazione dei file di registro.

Le applicazioni nel sistema spesso registrano un registro delle operazioni o dei problemi del disco. Se non vengono eliminati periodicamente, questi file possono aumentare di dimensioni, riempire il disco e causare malfunzionamenti.

Logrotate è la soluzione più comune per controllare periodicamente i file di registro e gestirne automaticamente la rotazione, la compressione e l'eliminazione al superamento di una certa dimensione e/o età.

Configurazioni di base

Logrotate permette di definire alcuni parametri di base che verranno utilizzati da tutte le successive configurazioni del file nel percorso /etc/logrotate.conf:

# Set a weekly rotation

weekly


# Set the number of rotations to save

rotate 4
              

# make new log file

create
              

# Include all configurations files

include /etc/logrotate.d

In questo estratto di logrotate.conf, oltre ad applicare tutti i parametri sopra descritti, si consiglia anche di leggere tutte le configurazioni presenti nella directory /etc/logrotate.d. In questo modo, puoi dividere ogni configurazione per applicazione e/o contesto.

Le configurazioni Logrotate definiscono un set di regole per 1 o più file:

[FILE] [FILE?] [FILE?] {

    [SETTINGS]

}

Un classico esempio è quello della configurazione di /var/log/messaggi:

/var/log/messages {
                 

    # Save 5 rotations

    rotate 5
                 

    # Rotating files every week 

    weekly 
                 

    postrotate 

        /usr/bin/killall -HUP syslogd

    endscript

}

Nell'esempio sopra, viene preso in considerazione solo il file del messaggio. . e la sua rotazione è fissata ogni settimana, p ad un massimo di 5. Pertanto, al termine della quinta rotazione, i log files:

-rw-r----- 1 root  adm 1215 Jul 29 06:47 messages

-rw-r----- 1 root  adm 3895 Jul 28 06:49 messages.1

-rw-r----- 1 root  adm 454 Jul 21 06:37 messages.2.gz

-rw-r----- 1 root  adm 506 Jul 15 06:40 messages.3.gz

-rw-r----- 1 root  adm 456 Jul 7 06:41 messages.4.gz

Alcune delle impostazioni più importanti sono:

  • giornaliero, mensile, settimanale, annuale:indica la frequenza con cui ruotare il file di registro

  • compress, nocompress:se comprimere o meno le vecchie rotazioni dei file

  • maxage:Dopo quanti giorni vengono eliminate le vecchie rotazioni

  • dimensione:imposta la rotazione solo se i file indicati sono più grandi della dimensione specificata. I suffissi possono essere utilizzati per indicare il formato della dimensione (ad es. "k" per kilobyte, "M" per megabyte)

  • ruota:numero di registri ruotati che devono essere salvati prima di essere rimossi definitivamente. Se impostato su 0, i file di registro verranno cancellati senza essere ruotati.

Nel caso in cui desideri impostare le stesse regole per più file, puoi aggiungere più percorsi, separandoli con una virgola. Ad esempio:

/var/log/custom_log, /var/log/alternative_log_file, /var/log/another_log {
                 

      …
                 

}

Questa configurazione verrà utilizzata per il file custom_log, alternative_log_file e un altro_log.

In alternativa puoi usare maschere di file come:

/var/custom/logs/*, /var/log/custom_log {
                 

      # This configuration will rotate all the files in the directory. 

      # /var/custom/logs/* e il file /var/log/custom_log
                 

      ...

}

Utilizzo dell'impostazione dateext

L'impostazione dateext consente di aggiungere la data di rotazione al nome del file, in modo che i dati dei registri possano essere facilmente riconosciuti.

/var/log/custom.log {

    size 100M

    dateext

    rotate 3

    compress

    maxage 100

}

La configurazione sopra indicata archivierà il file custom.log non appena raggiunge i 100M, fino ad un massimo di 3 volte o dopo 100 giorni. Tramite l'opzione comprimi, il file archiviato verrà compresso anche in formato gzip.

Una volta ruotati, i nomi dei file avranno la data di rotazione mostrata di seguito:

# ls /var/log

-rw-r--r--  1 user user 8980 2019-06-09 22:10 custom.log-20180609.gz

-rwxrwxrwx 1 user user    0 2019-06-09 22:11 custom.log

Registri email

Logrotate consente di eseguire script personalizzati quando si verificano determinati eventi, ad esempio dopo ogni rotazione del registro, utilizzando le parole chiave postrotate / endscript.

Un possibile utilizzo potrebbe essere quello di inviare i log via e-mail al termine della rotazione. Per procedere, crea innanzitutto uno script per inviare i file al tuo indirizzo email:

#!/bin/bash
                 

# Get all logs

tar -cvf /tmp/logpack.tar /var/log/messages*
                 

# Send logs as attachment 

echo "Log" | mail -s "log" [email protected] -A /tmp/logpack.tar

Salva il file sopra nella tua home directory, ad esempio /home/map.com username_s//endend.sh e assicurati di abilitare le autorizzazioni necessarie tramite:

# sudo chmod u+x /home/user/sendlog.sh

Ora, modifica il file di configurazione di logrotate come segue:

/var/log/messages {
                 

    ...

    

    postrotate 
                 

        …
                 

        /home/user/sendlog.sh

    endscript

}

Salva la configurazione per applicare le modifiche.

Una volta completato, riceverai un'e-mail con l'archivio dei log sopra descritto ad ogni rotazione dei log.


Linux
  1. Come gestire le capacità dei file Linux

  2. Come gestire i file di registro utilizzando Logrotate in Linux

  3. Come utilizzare rsyslog per creare un server di aggregazione dei registri Linux

  4. Come rinominare i file in modo specifico in un elenco che utilizzerà Wget?

  5. Come utilizzare Netcat per trasferire file su Linux

Come installare Logrotate su Ubuntu 16.04 LTS

Come utilizzare il File Manager di cPanel?

Come usare gzip in Linux?

Come usare Linux per recuperare file cancellati

Suggerimenti per Ubuntu:come visualizzare i file di registro di sistema nella GUI

Come comprimere un file in Linux