~
~
:wq

Tuesday, 26 January 2010

Cuándo se inició el sistema

english version - all spanish posts

La forma mas habitual de averiguar cuando se produjo el último inicio del sistema es mediante el comando uptime:

root@blogspot:~# uptime
 22:28:20 up 22 days, 12:48,  1 user,  load average: 0.11, 0.04, 0.00

Pero ese comando no nos dice CUANDO sino HACE CUANTO.

Así que aunque solo sea por curiosidad aquí van unas cuantas recetas para obtener el CUANDO:

Mediante who:

root@blogspot:~# who -b
         system boot  2010-01-04 09:39

Con last:

root@blogspot:~# last reboot
reboot   system boot  2.6.24-24-server Mon Jan  4 09:39 - 22:30 (22+12:51)

wtmp begins Mon Jan  4 09:34:08 2010

Lamentablemente "last" depende del registro wtmp que suele ser limpiado periódicamente (dependiendo de la distribución y de la configuración que se haga de logrotate). Por este motivo en servidores con un uptime muy elevado "last reboot" puede no ser demasiado útil.

Finalmente el método que más me gusta: a partir de la fecha epoch del arranque está almacenada en /proc/stat:

root@blogspot:~# date -d @$(sed -n 's/btime \(\d*\)/\1/p' /proc/stat)
Mon Jan  4 09:39:24 CET 2010

Como cada vez que uso sed, awk o grep me gusta obtener sus equivalentes para cada uno os propongo alguna alternativa (de las decenas que hay) al anterior comando sed; con awk:

root@blogspot:~# date -d @$(awk '$1 ~ /btime/ {print $2}' /proc/stat)
Mon Jan  4 09:39:24 CET 2010

Y con grep, en este caso con su compatibilidad con expresiones perl:

root@blogspot:~# date -d @$(grep -Po '(?<=btime )(\d*)' /proc/stat)
Mon Jan  4 09:39:24 CET 2010

0 comments:

Post a Comment