2,123 22/03/2026 07/04/2026 3 min

Gestire i file temporanei su un server Linux può rapidamente diventare un compito ripetitivo e noioso. In questo articolo, esploreremo come poter automatizzare la creazione e la pulizia di file temporanei utilizzando tmpfiles.d in combinazione con systemd timer. Quest'approccio non solo semplifica la gestione dei file, ma riduce anche il rischio di accumulo di dati non necessari nel sistema.

Prerequisiti

  • Un sistema Linux con supporto per systemd.
  • Accesso come utente root o privilegi sudo.
  • Una directory dedicata per i file temporanei che desideriamo gestire.

Step 1: Creare la directory per i file temporanei

Iniziamo creando una directory in cui andremo a scrivere i file temporanei. Questa è una buona pratica per mantenere l'ordine nel filesystem.

mkdir -p /srv/tempfiles

# Output: nessun output atteso, la directory verrà creata.

Perché funziona: Il comando mkdir crea la directory specificata, con l'opzione -p che evita errori se la directory esiste già.

Step 2: Configurare tmpfiles.d

Ora, configuriamo tmpfiles.d per gestire automaticamente la creazione dei file temporanei nella directory appena creata.

echo "D /srv/tempfiles 0755 root root -" > /etc/tmpfiles.d/tempfiles.conf

# Output: nessun output atteso, il file di configurazione verrà creato.

Perché funziona: La sintassi D indica a tmpfiles di creare la directory se non esiste, con i permessi specificati.

Step 3: Creare un file temporaneo

Per testare la configurazione, creiamo un file temporaneo nella directory.

touch /srv/tempfiles/testfile.txt

# Output: nessun output atteso, il file sarà creato.

Perché funziona: Il comando touch crea un file vuoto se non esiste.

Step 4: Configurare il systemd Timer

Adesso procediamo a creare un timer di systemd che effettuerà una pulizia regolare della directory temporanea.

[Unit]
Description=Cleanup tempfiles

[Timer]
OnBootSec=10min
OnUnitActiveSec=1h

[Install]
WantedBy=timers.target

# Salva il file come /etc/systemd/system/tempfiles-cleanup.timer

# Output: nessun output atteso, il timer verrà configurato.

Perché funziona: Questo timer sarà attivato 10 minuti dopo l'avvio e verrà eseguito ogni ora.

Step 5: Abilitare e avviare il Timer

Abilitando e avviando il timer, la pulizia avverrà automaticamente.

systemctl enable --now tempfiles-cleanup.timer

# Output: nessun output atteso.

Perché funziona: enable --now attiva il timer automaticamente all'avvio.

Verifica Finale

Per assicurarti che tutto funzioni come previsto, esegui il seguente comando per controllare lo stato del timer:

systemctl list-timers

# Output: visualizzerai i timer configurati e il loro stato.

Perché funziona: Questo comando mostra lo stato attuale di tutti i timer nel sistema.

Troubleshooting

Di seguito alcuni problemi comuni che potresti incontrare:

  1. ERRORE: Failed to start tempfiles-cleanup.timer
    Causa: Syntax error nel file di configurazione del timer.
    Fix: Controlla il file /etc/systemd/system/tempfiles-cleanup.timer per errori di sintassi e correggi.
  2. ERRORE: Directory non creata
    Causa: Permessi insufficienti per creare la directory.
    Fix: Esegui il comando come root o aggiungi i permessi necessari.
  3. ERRORE: Classificazione dei file non avvenuta
    Causa: configurazione errata in tmpfiles.d.
    Fix: Verifica il file /etc/tmpfiles.d/tempfiles.conf per eventuali errori.

Conclusione

Abbiamo appena configurato un sistema di gestione dei file temporanei utilizzando tmpfiles.d e systemd timer. Questo approccio automatizza un compito ripetitivo, mantenendo il sistema pulito e ordinato. Come prossimo passo, esplora ulteriori personalizzazioni e ottimizzazioni per adattare questo sistema alle tue esigenze specifiche.