GNU/Linux >> Linux Esercitazione >  >> Linux

Come ruotare i file di registro Apache in Linux

Domanda: Vorrei ruotare automaticamente apache access_log e registro_errori file. Puoi spiegare con un esempio come farlo?

Risposta: Questo può essere ottenuto usando l'utilità logrotate come spiegato di seguito.

Aggiungi il seguente file alla directory /etc/logrotate.d.

# vi /etc/logrotate.d/apache
/usr/local/apache2/logs/access_log /usr/local/apache2/logs/error_log {
    size 100M
    compress
    dateext
    maxage 30
    postrotate
      /usr/bin/killall -HUP httpd
      ls -ltr /usr/local/apache2/logs | mail -s "$HOSTNAME: Apache restarted and log files rotated" [email protected]
    endscript
}

Nota: Fare riferimento al nostro tutorial logrotate (con 15 esempi) che spiega maggiori dettagli su come utilizzare le opzioni logrotate.

Nell'esempio sopra /etc/logrotate.d/apache:

  • taglia 100M – Una volta che access_log e error_log raggiungono i 100 milioni, verranno ruotati. Puoi anche usare 100k (per Kb), 100G (per GB). Invece delle dimensioni, puoi anche ruotare i log di Apache utilizzando la frequenza (giornaliera, settimanale, mensile).
  • comprimi – Indica che il file di registro ruotato verrà compresso. Per impostazione predefinita, utilizza gzip. Quindi, il file ruotato avrà estensione .gz.
  • dataext – Aggiunge la data nel formato AAAAMMGG ai file di registro ruotati. cioè invece di access_log.1.gz, crea access_log-20110616.gz
  • massimo – Indica per quanto tempo devono essere conservati i file di registro ruotati. In questo esempio, verrà conservato per 30 giorni.
  • postrotato e endscript – Tutti i comandi racchiusi tra questi due parametri verranno eseguiti dopo la rotazione del registro.

Importante: Dopo aver ruotato i file di registro, si desidera che Apache scriva i nuovi messaggi di registro in access_log e error_log appena creati. Quindi, devi inviare il segnale HUP ad apache come mostrato qui. Assicurati di eseguire /usr/bin/killall -HUP httpd, che riavvierà l'Apache dopo aver ruotato i file di registro (Leggi di più su kill).

Inoltre, potresti voler inviare un'e-mail a te stesso indicando che il file di registro è ruotato, insieme all'output del comando ls -ltr come corpo dell'e-mail. cioè aggiungi quanto segue tra l'opzione "postrotate" e "endscript" (dopo il comando killall).

ls -ltr /usr/local/apache2/logs | mail -s "$HOSTNAME: Apache restarted and log files rotated" [email protected]

Lo script /etc/cron.daily/logrotate viene eseguito ogni giorno ed eseguirà la rotazione del registro di tutti i file come specificato nella directory /etc/logrotate.conf e di tutti i file nella directory /etc/logrotate.d.

Dopo aver aggiunto il file /etc/logrotate.d/apache sopra, a scopo di test, puoi chiamare manualmente lo script logrotate come mostrato di seguito.

# /etc/cron.daily/logrotate

Una volta ruotati i file di registro, eseguire una ls per verificarli. Come spiegato in precedenza, i file di registro ruotati verranno conservati per 30 giorni.

# ls /usr/local/apache2/logs
access_log
error_log
access_log-20110716.gz
error_log-20110716.gz

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

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

  3. Come comprimere più file su Linux

  4. File di registro di Linux

  5. Come gzippare tutti o file specifici in Linux

Come decomprimere i file in Linux

Come rinominare uno o più file in Linux

Come aggiungere manualmente messaggi ai file di registro del sistema Linux

Come visualizzare i file di registro Nginx su Linux

Come visualizzare i file di registro di Apache su Linux

Come comprimere un file in Linux