Linux Command Line & Bash Scripting Mastery · Lezione

Rotazione e pulizia automatizzate dei log

Mantenga i dischi in buone condizioni automatizzando la rotazione dei log e la pulizia dei file obsoleti con logrotate e script pianificati basati su find.

Lezione 4 di 413 passaggi

Rotazione e pulizia automatizzate dei log è una lezione Linux Command Line & Bash Scripting Mastery gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Linux Command Line & Bash Scripting Mastery, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Linux Command Line & Bash Scripting Mastery include 4 lezioni in totale.

Il problema dei log in crescita

I servizi a esecuzione prolungata scrivono log senza fine. Senza una gestione adeguata, riempiono il disco e causano il crash del sistema. La rotazione e la pulizia aiutano a tenerli sotto controllo.

du -sh /var/log/*

Che cosa fa la rotazione dei log

La rotazione rinomina il log corrente, ne avvia uno nuovo vuoto e conserva un numero limitato di copie precedenti compresse.

  • app.log diventa app.log.1
  • le copie precedenti vengono compresse con gzip
  • quelle più vecchie vengono eliminate

Introduzione a logrotate

logrotate è lo strumento standard di Linux che automatizza la rotazione in base alle dimensioni o all'età, configurato in /etc/logrotate.d/.

cat /etc/logrotate.conf

Una configurazione di base di logrotate

Un blocco di configurazione specifica i file di log e la relativa politica di rotazione.

/var/log/myapp/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

Capire le direttive

Direttive comuni:

  • daily esegue la rotazione ogni giorno
  • rotate 7 conserva 7 file precedenti
  • compress comprime i log ruotati con gzip
  • missingok ignora i file mancanti

Testare senza aspettare

Forzi un'esecuzione con -f oppure esegua una simulazione con -d per convalidare la configurazione prima di affidarsi alla pianificazione.

logrotate -d /etc/logrotate.d/myapp
logrotate -f /etc/logrotate.d/myapp

Script postrotate

Molti servizi mantengono aperto il vecchio descrittore di file. Un blocco postrotate segnala al servizio di riaprire il proprio log dopo la rotazione.

/var/log/myapp/*.log {
    daily
    postrotate
        systemctl reload myapp
    endscript
}

Pulire i file vecchi con find

Per una pulizia occasionale, find con -mtime individua i file più vecchi di N giorni e li elimina.

find /var/log/myapp -name "*.log" -mtime +30 -delete

Uno script di pulizia sicuro

Racchiuda la pulizia in uno script che registri ciò che rimuove, così da disporre di una traccia di controllo.

#!/bin/bash
DIR=/var/backups
find "$DIR" -name "*.tar.gz" -mtime +14 -print -delete \
  >> /var/log/cleanup.log 2>&1

Pianificare la pulizia

Affidi la rotazione a logrotate, già eseguito tramite cron, e pianifichi gli script di pulizia personalizzati con una voce apposita nel proprio crontab.

# crontab -e
30 2 * * * /usr/local/bin/cleanup.sh

Monitorare l'uso del disco

Aggiunga un controllo che invii un avviso quando una partizione supera una soglia, così la pulizia non viene eseguita troppo tardi.

USAGE=$(df --output=pcent / | tr -dc "0-9")
[ "$USAGE" -gt 90 ] && echo "Disk over 90%" | mail -s alert root

Verifica rapida

Verifichi la Sua conoscenza dell'automazione.

Riepilogo

Ha automatizzato la gestione dei log:

  • logrotate ruota i log in base a età/dimensioni con rotate, compress, postrotate
  • Convalidare con -d / -f
  • Usare find -mtime +N -delete per la pulizia personalizzata
  • Pianificare con cron e usare avvisi sull'uso del disco come controllo
Gratis per iniziare

Impara Bash con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
22
Lezioni
88

Domande Frequenti

La lezione «Rotazione e pulizia automatizzate dei log» è gratuita?

Sì — il testo completo di «Rotazione e pulizia automatizzate dei log» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Linux Command Line & Bash Scripting Mastery, passa a CoddyKit PRO. Il corso Linux Command Line & Bash Scripting Mastery include 4 lezioni in totale.

Cosa imparerò in «Rotazione e pulizia automatizzate dei log»?

Mantenga i dischi in buone condizioni automatizzando la rotazione dei log e la pulizia dei file obsoleti con logrotate e script pianificati basati su find. Eserciti Linux Command Line & Bash Scripting Mastery con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Linux Command Line & Bash Scripting Mastery?

Non è richiesta alcuna esperienza precedente. Linux Command Line & Bash Scripting Mastery su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Rotazione e pulizia automatizzate dei log»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Linux Command Line & Bash Scripting Mastery?

Sì. Ogni lezione Linux Command Line & Bash Scripting Mastery include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Pianificazione delle attività con Cron
  2. Automazione dell’amministrazione di sistema
  3. Progetto di scripting avanzato
  4. Rotazione e pulizia automatizzate dei log
← Torna a Linux Command Line & Bash Scripting Mastery