Domanda: L'output di vmstat non visualizza la data e l'ora, il che è un problema quando si tenta di archiviare l'output di vmstat per eseguire un'analisi delle prestazioni.
Quindi, come aggiungo timestamp all'output vmstat di Linux ?
Risposta: Puoi visualizzare il timestamp su ogni riga dell'output del comando vmstat utilizzando un semplice script perl come mostrato di seguito.
Uscita Vmstat predefinita (senza timestamp)
$ vmstat 1 5 procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 33308 450080 59020 6757044 1 1 551 148 1 6 26 9 60 5 0 0 33308 449960 59020 6757044 0 0 0 0 1068 1576 1 1 98 0 1 0 33308 453928 59020 6757044 0 0 0 48 1049 1628 2 1 97 0 0 0 33308 454120 59020 6757044 0 0 0 0 1034 1663 2 1 96 0 0 0 33308 454112 59020 6757044 0 0 0 0 1025 1535 1 1 98 0
Uscita Vmstat con timestamp
Crea il seguente semplice timestamp.pl
$ vi timestamp.pl #!/usr/bin/perl while (<>) { print localtime() . ": $_"; }
Ora invia l'output del comando vmstat a questo timestamp.pl per visualizzare il timestamp come mostrato di seguito.
$ vmstat 1 5 | timestamp.pl Sat Aug 22 20:50:36 2009: procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- Sat Aug 22 20:50:36 2009: r b swpd free buff cache si so bi bo in cs us sy id wa Sat Aug 22 20:50:36 2009: 2 0 33308 452080 59084 6761140 1 1 551 148 1 6 26 9 60 5 Sat Aug 22 20:50:37 2009: 0 0 33308 454368 59084 6761140 0 0 0 0 1028 1713 2 1 96 0 Sat Aug 22 20:50:38 2009: 0 0 33308 454368 59084 6761140 0 0 0 0 1010 1432 0 0 100 0 Sat Aug 22 20:50:39 2009: 0 0 33308 454368 59084 6761140 0 0 0 12 1021 1481 1 0 99 0 Sat Aug 22 20:50:40 2009: 0 0 33308 457184 59084 6761140 0 0 0 0 1029 1549 1 1 98 0