Ricerca nel sito web

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.