Esiste un'opzione per il comando linux top in cui è possibile filtrare i processi in base al nome e scrivere l'utilizzo della CPU di tale processo ogni 1 secondo in un file di registro?Filtra per nome processo e registro Utilizzo CPU
risposta
per filtrare l'output di top
dal nome del processo, è possibile utilizzare pgrep
per ottenere un elenco di PID per nome processo poi passare all'opzione -p
di top
. Per esempio:
top -p $(pgrep -d',' http)
Nota: l'opzione -d','
delimita i PID con virgole, che è ciò che è previsto dal top -p
. Nota 2: top
restituirà un messaggio di errore se non ci sono processi in esecuzione che corrispondono al nome specificato in pgrep
.
Per scrivere i risultati di top
in un file, utilizzare l'opzione -n 1
(solo una iterazione) e reindirizzare l'output nel file di registro.
top -p $(pgrep -d',' http) -n 1 >> your_log_file
Per fare questo ogni secondo, forse un ciclo while
con un sleep
farebbe?
while :; do top -p $(pgrep -d',' http) -n 1 >> your_log_file; sleep 1; done
Per timestamp ogni voce, è possibile aggiungere l'output di date
. Per esempio.
while :; do top -p $(pgrep -d',' http) -n 1 >> log.txt; date >> log.txt; sleep 1; done
Un'altra opzione è:
top -b -d 1 -p $(pgrep -d',' java) -n 120 > log.txt
- L'opzione -d permette di impostare la frequenza utilizzata dal top per aggiornare i dati .
- L'opzione -b significa che l'interfaccia tradizionale di top è non utilizzata. Invece, invia tutto allo standard output e quindi è possibile utilizzare una pipe (|) o un reindirizzamento (>).
- L'opzione -n informa sul numero di iterazioni che la parte superiore deve eseguire.
Dopo di che è possibile digitare:
cat log.txt | grep USER_OF_PROCESS
si vedrà il tempo di esecuzione del processo e anche% di CPU, memoria e tutto il resto.
#You can run following script as ./cpurecorder.sh pid filename
#It will generate output file with memory usage and cpu utilisation.
#You can log other variable by searching man for ps.
`enter code here`filepath=/home/rtcsadm # modify as desired
interval=20 # reports per minute
timelimit=6000 # how long to run, in seconds
mydate=`date "+%H:%M:%S"` # the timestamp
freq=$((60/$interval)) # for sleep function
while [ "$SECONDS" -le "$timelimit" ] ; do
ps -p$1 -opid -opcpu -opmem -ocomm -c | grep $1 | sed "s/^/$mydate /" >> $filepath/$2.txt
sleep 3
mydate=`date "+%H:%M:%S"`
done
- 1. Utilizzo CPU cpu per ogni processo che utilizza sysctl()?
- 2. Utilizzo CPU per thread
- 3. Utilizzo della CPU Dstat per un processo specifico
- 4. Utilizzo CPU e Object.wait
- 5. Utilizzo di PerformanceCounter per tenere traccia della memoria e dell'utilizzo della CPU per processo?
- 6. Come monitorare un processo in Linux CPU, memoria e tempo
- 7. utilizzo della CPU alto per dormire processi
- 8. CPU utilizzata da Processo
- 9. per ID processo anziché nome?
- 10. Filtra per nome classe in log4j2
- 11. Log4Net filtra INFO dal registro e mostra solo DEBUG & ERRORE
- 12. Processo figlio per attività intensiva CPU?
- 13. Come recuperare l'utilizzo della cpu per processo
- 14. Filtra registro git per mostrare solo le mie modifiche
- 15. Utilizzo sensore CPU Android
- 16. Android - Utilizzo memoria/CPU
- 17. Utilizzo CPU Jquery
- 18. Utilizzo CPU Python profilo per thread
- 19. Utilizzo della CPU per applicazione in Android
- 20. MySQL Elevato utilizzo della CPU e collegamenti persistenti
- 21. MySQL: registro lento; aggiungi l'utilizzo della CPU
- 22. Utilizzo di C++ per modificare il registro
- 23. Java VisualVM Utilizzo della CPU e affinità del processore
- 24. Phpstorm superslow - 282,8% Utilizzo CPU
- 25. Filtra i parametri di registro lunghi in Rails
- 26. Script di shell per la registrazione di cpu e l'utilizzo della memoria di un processo linux
- 27. Utilizzo della CPU con golang
- 28. SQL Server 2008 Utilizzo elevato della CPU
- 29. Studio del processo Python per vedere cosa sta mangiando CPU
- 30. Impostazione dell'utilizzo massimo della CPU per processo in Windows
Grazie Shawn, come registrare data e ora per ogni 1 secondo., In modo che possa aiutarmi a isolare a che ora e quanta CPU è stata utilizzata da un processo specifico. – BalaB
@bala vedi gli aggiornamenti nella risposta. –
Elegante e molto utile. Grazie! –