¿Lista de todas las fechas y horas en las que usé mi MacBook?

Necesito una lista de los períodos en los que usé mi MacBook durante los últimos 30 días.

Sería suficiente tener una lista de todas las fechas de apertura y cierre de la tapa (porque cierro la tapa cuando no uso la MacBook). Una lista cronológica de todas las fechas de suspensión / activación / apagado / encendido (y tal vez inicio de sesión) también ayudaría.

Lo que no ayudó:

  • Googleando
  • el lastcomando
  • Filtrado /var/log/system.log(que por cierto solo contiene un día)
  • Filtrando la aplicación de la consola (pero tal vez haya una manera...)
system.log se rota de vez en cuando y puede ver los registros anteriores si busca en la consola system.log.0.gz, system.log.1.gz, etc. No sé si incluso estos volverán 30 días sin embargo.

Respuestas (3)

Si es suficiente tener una lista de todos los ciclos de sueño/vigilia (tapa abierta, tapa cerrada), puede ejecutar:

pmset -g log | grep ' Wake '

o

pmset -g log | grep ' sleep '

Juega con la cadena pasada a grep para obtener la información que necesitas.

Wow, gracias por esta respuesta rápida. ¡Esto parece prometedor! ¿Alguna posibilidad de generar más de 14 días usando pmset? (Necesito al menos 30 días)
Esto no funcionó para mí en OSX. Me dio fechas y horas incorrectas. Pero esto funcionó a las mil maravillas: pmset -g log | grep 'Display is turned on'.
¡Lindo! Puede obtener una mejor línea de tiempo si usa solo un comando:pmset -g log | grep -E 'Wake from|Entering Sleep'

Examiné esto un poco y parece factible, pero deberá observar su comportamiento con el sistema a lo largo del tiempo para determinar exactamente qué mensajes en los registros para grep. Hice el siguiente conjunto de pasos para analizar el historial completo de los ciclos de sueño/vigilia de esta MacBook y se remonta al 12 de agosto.

Precondiciones: Escribir a un usuario no root en ~/Downloads. Cambie las rutas y los nombres de los archivos de salida como desee.


#!/bin/bash
#
# Read system wake/sleep cycles from kernel logs from oldest to newest.
#
# First, read the archived kernel logs for wakes.
for file in $(ls -r /var/log/kernel.log.*) ; do   bunzip2 -c $file | grep 'Wake reason:' >> ~/Downloads/wakeup.txt; done
#
# Read current kernel.log for wakes.
grep 'Wake reason:' /var/log/kernel.log >> ~/Downloads/wakeup.txt
#
# Read archived kernel logs for sleeps.
for file in $(ls -r /var/log/kernel.log.*) ; do   bunzip2 -c $file | grep ': sleep' >> ~/Downloads/wakeup.txt; done
#
# Read current kernel.log for sleeps.
grep ': sleep' /var/log/kernel.log >> ~/Downloads/wakeup.txt
#
# Sort raw output from greps for chronological picture.
sort -o ~/Downloads/sortedwake.txt ~/Downloads/wakeup.txt

Eso debería darle un salto decente para llegar a una imagen más completa. Puede examinar los registros del kernel para saber cuándo se reinició el sistema, etc. Una vez que sepa qué filtrar, podrá ampliar esto bastante. Diviértete con eso.

Oh, una nota final: si está examinando un sistema que visita muchas redes, verá que el nombre de su sistema cambia en los registros de acuerdo con lo que el servidor DNS asocia con su dirección IP. Se ve un poco extraño, pero es un comportamiento bastante normal.

¡Gracias por tu respuesta detallada! Jugué un poco con su secuencia de comandos y tuve que modificar las siguientes cosas: los archivos se llaman system.log en lugar de kernel.log en mi MacBook, en lugar de bunzip2I need to use gunzip, elimine los archivos antiguos al principio rm ~/Downloads/wakeup .txt rm ~/Downloads/sortedwake.txt Entonces su secuencia de comandos funciona bien PERO desafortunadamente contiene solo 9 días de historial (el archivo de registro más antiguo es system.log.9.gz). ¿Hay alguna copia de seguridad oculta más antigua en algún lugar?
Muy bien, al leer apple.stackexchange.com/questions/77373/… descubrí que los archivos system.log se rotarán automáticamente y se eliminarán después de algunos días. Intentaré cambiar /etc/newsyslog.confde la siguiente manera: /var/log/system.log 640 40 * @T00 J Esto en el futuro, con suerte, conservará mis archivos system.log durante 40 días. (Perdón por el formato feo, el mini-Markdown está roto en este momento)
@Joshua, buena suerte con eso.

Finalmente lo envolví en un oneliner que extrae los eventos de suspensión y activación del sistema de varios archivos de registro:

(pmset -g log|grep -e " Sleep " -e " Wake "; syslog | grep -e "System Sleep" -e " Wake reason:") | more

Si su sistema ya usa logen lugar de, sysloguse el siguiente comando en su lugar:

(pmset -g log|grep -e " Sleep " -e " Wake "; log show | grep -e "System Sleep" -e " Wake reason:") | more

  • Pista 1: pmset está limitado a 14 días
  • Sugerencia 2: el comando syslog también busca automáticamente las entradas system.log archivadas. De forma predeterminada, hay 10 copias de seguridad diarias de system.log. Para guardar 30 días de copias de seguridad de system.log para referencia futura, agregue la siguiente línea a /var/log/newsystemlog.conf: (todavía evaluando qué tan bien funciona esto)


    /var/log/system.log                     640  30     *    @T00  J
    

@trane-francks @aglasser ¡Gracias por sus contribuciones! Ayudaron a localizar el problema.