2010-07-24 20:12:11 +0000 2010-07-24 20:12:11 +0000
40
40

¿Existe un registro que registre los cierres en Linux?

Me preguntaba si existe un archivo de registro en Linux que registre cada vez que se apaga el ordenador.

La razón por la que lo pregunto es que estoy haciendo algunas pruebas relacionadas con la duración de la batería de mi portátil bajo ciertas condiciones. Mi portátil está configurado para que se apague automáticamente cuando le queden unos 10 minutos de batería, así que si hay un archivo de registro en alguna parte que registre cuándo se apaga el ordenador, esto me facilitará mucho las pruebas.

Estoy ejecutando Ubuntu 10.04. Gracias.

Respuestas (8)

29
29
29
2010-07-29 09:30:27 +0000

¿Qué tal el comando last -x shutdown?

16
16
16
2010-07-24 21:43:43 +0000

El archivo /var/log/messages realmente debería tener algo relacionado con los apagados, por ejemplo el mío (CentOS 5) tiene líneas como estas:

Jul 18 23:00:13 nero shutdown[2649]: shutting down for system halt
...
Jul 18 23:00:27 nero kernel: Kernel logging (proc) stopped.
Jul 18 23:00:27 nero kernel: Kernel log daemon terminating.

Comprueba tu /etc/syslog.conf o /etc/rsyslog.conf o equivalente para asegurarte de que los registros van allí. Probablemente necesitarás privilegios de root para leer los archivos de registro.

Además, aunque no se trata de apagados propiamente dichos, el comando “last” debería informar de los reinicios.

¿Realmente no hay nada en los registros alrededor de la hora en que se apagó por última vez?

Para sus pruebas, tenga en cuenta que su ordenador sólo sabe que le quedan 10 minutos por la información que le reporta la batería, que puede ser exacta o no. En lugar de esperar a que se apague podrías mirar la información ACPI directamente. En mi portátil está aquí:

/proc/acpi/battery/BAT0/

Ahí, los archivos “state” e “info” parecen interesantes. Podrías observar la capacidad restante en el archivo de estado mientras haces funcionar tu portátil bajo varias condiciones para ver lo rápido que cae.

5
5
5
2015-03-26 14:50:50 +0000

En primer lugar, permítanme empezar diciendo que sé que este es un hilo más antiguo. Sólo lo comento para que otras personas que encuentren esto mientras hurgan en la red (como he hecho yo hoy) tengan una respuesta clara.

En segundo lugar, tened en cuenta que el siguiente comando es una mala práctica y entra en la categoría de “usos inútiles de cat” (buscadlo en google)…

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Esa línea debería cambiarse por

grep "`LC_ALL=en_en.utf8 date +"%b %e"`" /var/log/messages

grep, y la mayoría de los comandos de unix/linux (sed, awk, etc…) no requieren de cat para leer el contenido de un archivo. Es suficiente con colocar la ruta y el nombre del archivo después del comando para pasarlo como argumento. Añadir una tubería y otro comando externo (cat) es sólo una pérdida de tiempo y recursos.

Por último, en cuanto a dónde encontrar un registro de los apagados y/o reinicios del sistema, utilice el último comando ya que es exactamente para lo que está pensado. Lee el archivo de registro /var/log/wtmp en busca de todas las entradas de inicio y cierre de sesión. Dado que los apagados y reinicios son en realidad un evento de login/logout a nivel de sistema, se registran aquí. Lo mismo se aplica para el cierre de la consola de root, es un evento de cierre de sesión.

Ejemplo:

last -5 reboot shutdown root

Esto le dará las últimas 5 entradas de reinicio, apagado y root (cierre de consola incluido) en el registro wtmp.

Resultado:

reboot ~ Mon Mar 23 14:51
shutdown ~ Mon Mar 23 14:49
root console Mon Mar 23 14:49 - shutdown (00:00)
reboot ~ Mon Mar 16 09:54
shutdown ~ Thu Mar 12 17:41

Espero que esto ayude a cualquiera que se tropiece con este hilo. :-)

4
4
4
2010-07-24 20:16:46 +0000

El archivo /var/log/messages debería contener esta información

2
2
2
2010-07-25 01:22:07 +0000

si quieres llevar la cuenta del tiempo que tu ordenador ha estado encendido en el pasado puedes usar algo como uptimed.

viene con un programa llamado uprecords que te muestra el tiempo que tu ordenador ha estado encendido.

1
1
1
2017-01-19 18:02:30 +0000

last reboot me funcionó en CentOS 6.7.

Para mostrar el año en la salida, por lo que realmente tiene sentido si tiene más de un año de registros, haga

last -F reboot

Aunque deduzco que el interruptor -F no funciona en algunos sistemas, como Solaris. Sin embargo, aparentemente es parte de la horma de GNU.

Gracias a https://unix.stackexchange.com/a/97597/174520

1
1
1
2014-05-07 13:52:00 +0000

Aquí hay una línea única para listar todos los mensajes del día actual:

cat /var/log/messages | grep "`LC_ALL=en_en.utf8 date +"%b %e"`"

Esto fue probado en CentOS así que YMMV.

Y por supuesto hay last reboot y last shutdown (como se ha mencionado), pero esto es demasiado simple para mis necesidades (sólo proporciona fechas).

0
0
0
2010-07-24 21:15:36 +0000

si no hay registro, puede intentar añadir un poco de ‘date >>mylog’ al script de apagado (en algunos discos, se llama rc.shutdown)

o, también hay una manera sin necesidad de previlage. ejecutar:

while [1];do sleep 5;date>mylog;sync;done

y hacer un tail de mylog en la siguiente sesión.