Come salvare l'output del comando principale in un file
Il comando top di Linux è molto utilizzato dagli amministratori di sistema per visualizzare statistiche di sistema in tempo reale relative a tempo di attività del sistema e carico medio, memoria utilizzata, attività in esecuzione, un riepilogo dei processi o dei thread e informazioni dettagliate su ciascun processo in esecuzione.
Tuttavia, oltre alla visualizzazione in tempo reale del sistema in esecuzione, l'output del comando top può essere salvato in un file, utilizzando il flag -b
, che indica a top di operare in modalità batch e -n
flag per specificare la quantità di iterazioni che il comando deve restituire.
Nell'esempio seguente, reindirizzeremo l'output del top command al file top.txt
nella directory di lavoro corrente. L'argomento -n verrà utilizzato per inviare solo un'istantanea del comando al file menzionato.
top -b -n 1 > top.txt
Per leggere il file risultante, utilizzare un'utilità di lettura file della riga di comando, come il comando cat, less o more.
less top.txt
Per acquisire cinque iterazioni del comando principale, esegui il comando come mostrato nell'estratto seguente.
top -b -n 5 > top-5iterations.txt
Per visualizzare solo il numero di attività in esecuzione dal file risultante, utilizzare il filtro grep, come mostrato nell'esempio di comando seguente.
cat top-5iterations.txt | grep Tasks
Per scattare un'istantanea di un processo specifico nell'utilità principale, esegui il comando con il flag PID (-p)
. Per ottenere il PID di un processo in esecuzione, emetti il comando pidof rispetto al nome del processo in esecuzione.
In questo esempio monitoreremo il processo cron tramite il top command acquisendo tre istantanee del PID.
pidof crond
top -p 678 -b -n3 > cron.txt
cat cron.txt
Utilizzando un ciclo di iterazione for, possiamo visualizzare le statistiche di un processo tramite il suo PID, ogni due secondi, come mostrato nell'esempio seguente. L'output del ciclo può anche essere reindirizzato su un file. Utilizzeremo lo stesso PID cron mostrato nell'esempio sopra.
for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done
Reindirizzare l'output del loop su file.
for i in {1..4}; do sleep 2 && top -b -p 678 -n1 | tail -1 ; done >> cron.txt
cat cron.txt
Questi sono solo alcuni esempi di come monitorare e raccogliere statistiche di sistema e di processo tramite il comando top.