Le attività quotidiane dell'amministratore di sistema sono sempre diverse per tutti; tuttavia, esistono attività semplici che vengono eseguite allo stesso modo sui sistemi gestiti. Ai tempi in cui lo spazio su disco era un fattore di rischio ai tempi dell'amministratore, era di vitale importanza individuare la directory o il filesystem di cui eseguire il debug.
Al giorno d'oggi, principalmente nelle macchine virtuali, è altrettanto importante che i sistemi gestiti siano integri e con spazio disponibile per l'esecuzione dei loro processi e la registrazione dei loro file di registro.
[ Potrebbe piacerti anche: Scripting Linux:3 istruzioni per i cicli while in Bash ]
Il modo migliore per iniziare è utilizzare i comandi più semplici collegando i loro output come input a una nuova esecuzione, formando ciò che è noto come one-liner. Cioè, usando l'interprete della riga di comando per leggere l'output standard di un comando e inserirlo come variabile di input del comando successivo, per questo, il comando xargs aiuta a ricevere quella variabile ed eseguirla.
Guarda un esempio pratico:
Ticket RH0502201-1:il server di produzione prodenv invia avvisi di "spazio su disco insufficiente nel filesystem di root". Viene richiesta l'eliminazione del filesystem.
-
Accedi al server e controlla lo spazio in
/filesystem
:
# df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/prodenv--vg-root 720G 720G 0 100% /
-
Passare alla directory principale, elencare le directory e per calcolare lo spazio su disco utilizzato in ciascuna directory, utilizzare una
pipe
exargs
per inviare ils
output del comando sudu
comando:
# ls | xargs du -sk
-
Con un
pipe
di nuovo, usa il comando sort per elencare l'output dallo spazio su disco più basso a quello più alto utilizzato nelle directory:
# ls | xargs du -sk | sort -n
-
In questo caso, sono necessarie solo le directory con la maggior parte dello spazio su disco occupato, quindi potremmo limitare l'elenco alle ultime cinque directory nell'elenco. Usando un'altra pipe e il comando tail:
# ls | xargs du -sk | sort -n | tail -5
Nota : Se vuoi evitare il messaggio di errore in cui il du
impossibile accedere al comando, inviare l'output dell'errore standard al dispositivo /dev/null:
# ls | xargs du -sk 2> /dev/null | sort -n | tail -5
-
Con l'elenco di directory definito, utilizza AWK per creare un nuovo elenco ordinato di directory, colonna due dell'elenco originale:
# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }'
-
L'elenco ordinato viene reimmesso come variabile in
du
per mostrare lo spazio utilizzato in un formato leggibile dall'uomo. Usa un altropipe
exargs
:
# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }' | xargs du -sh
-
Convalida la possibilità di eliminare o comprimere i file che stanno sovraccaricando il filesystem per liberare più spazio possibile su disco.
Probabilmente è possibile evitare i passaggi 5 e 6 ed eseguire direttamente la pulizia; tuttavia, in molti casi, queste directory appartengono a qualche applicazione e avvisano il responsabile parte di esso per eseguire la pulizia o semplicemente come prova del processo eseguito per la documentazione di risoluzione del problema.
Infine, il nostro one-liner ha il seguente aspetto:
# ls | xargs du -sk 2> /dev/null | sort -n | tail -5 | awk '{ print $2 }' | xargs du -sh
Questa una riga fa parte del mio arsenale utilizzato nelle attività quotidiane come amministratore di sistema, spero che lo trovi utile. E tu? Che cosa una riga hai un asso nella manica?
[ Ottieni questo ebook gratuito:Gestione dei cluster Kubernetes per i manichini. ]