Per alzata di mano, a quanti di voi piace riavviare i server? Non vedo mani.
I lunghi tempi di attività sono impressionanti, vero? Ti rende uno dei ragazzi fantastici che si vanta dei tuoi 853 giorni di attività su un sistema di produzione. La cosa non così interessante è che ai tuoi utenti piace usare /tmp
come loro discarica personale senza riguardo per la salute generale del sistema o per i tuoi diritti di vanteria. E il riavvio non elimina i file utente, solo quelli di sistema, anche se il sollievo è temporaneo fino al riavvio dei servizi e all'apertura delle applicazioni da parte degli utenti.
Nota: Un'eccezione per non eliminare i file temporanei dell'utente dopo un riavvio è abilitare
tmp.mount
, ma questo è un argomento per un altro articolo. Inoltre, sono disponibili script di pulizia del sistema per RHEL 7 e versioni successive.
È impossibile costringere gli utenti a rispettare la politica di rimozione dei file da /tmp
directory in modo tempestivo. Quindi, cosa deve fare un amministratore di sistema frustrato quando hai dozzine, centinaia o addirittura migliaia di /tmp
directory e utenti da gestire? La risposta è distribuire gli script di gestione dei file utente.
Puoi creare script di pulizia e inserirli in crontab
per rimuovere periodicamente i file utente da /tmp
directory. È un servizio sfortunato ma necessario da fornire ai tuoi utenti. La maggior parte degli amministratori di sistema esperti ti dirà che non dovresti rimuovere i file da /tmp
a meno che tu non sappia che non vengono utilizzati, però. Questo è un buon consiglio. Alcuni servizi scrivono file di blocco in /tmp
, alcune applicazioni lo usano e gli utenti lo usano. Quindi, come determini quali file il tuo script di pulizia può spazzare via senza problemi?
[ Download gratuito:cheat sheet dei comandi avanzati di Linux. ]
Che ne dici di filtrare i file in base all'ora dell'ultimo accesso? È una buona scelta se hai un limite di tempo per i file rimasti in /tmp
. Ad esempio, se avverti i tuoi utenti che i file sono rimasti nel /tmp
la directory verrà rimossa se non è stato effettuato l'accesso in due giorni, su base continuativa, dovrebbero prenderne atto. L'utilizzo dell'ora dell'ultimo accesso per i file utente risolve il problema se si escludono anche i file di proprietà dell'utente root. Ad esempio, usa:
find /tmp -type f \( ! -user root \) -atime +2
Questo script mostra tutti i file nel /tmp
directory non di proprietà di root a cui è stato effettuato l'accesso più di due giorni fa. Ora per aggiungere l'opzione di rimozione del comando:
find /tmp -type f \( ! -user root \) -atime +2 -delete
Copia quel testo in un file, rendilo eseguibile e crea un crontab
voce che esegue questo script ogni otto ore. Ad esempio, potresti aggiungerlo al tuo crontab
:
* */8 * * * /opt/scripts/tmp.clean.sh
Questo script e la pianificazione assicurano che il tuo /tmp
directory è mantenuta relativamente priva di immondizia. Non è infallibile, tuttavia. Se un utente decide di scaricare un'enorme quantità di dati nel /tmp
directory, questa azione può causare altri problemi, come non essere in grado di accedere al sistema tramite SSH.
Mantenimento del /tmp
directory non è facile. Gli utenti amano scaricare i file in /tmp
e lasciarli lì a tempo indeterminato. Fortunatamente, per i trasgressori recidivi, c'è sempre la possibilità di bloccare il proprio account o inviare un'e-mail con parole forti sulla perdita dell'accesso a un sistema fino a quando la questione non viene chiarita dal proprio manager. Queste tattiche di solito attirano l'attenzione dell'utente e ulteriori offese sono rare.