6 votos

¿Lista de todas las fechas+horas en las que he utilizado mi MacBook?

Necesito una lista de los periodos de tiempo que he utilizado mi MacBook a lo largo de los últimos 30 días.

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

Lo que no ayudó:

  • Buscando en
  • El last comando
  • Filtrado /var/log/system.log (que por cierto sólo contiene un día)
  • Filtrar la aplicación de la consola (pero tal vez haya una manera...)

0 votos

System.log se rota cada cierto tiempo y puedes ver los registros anteriores si buscas en la consola system.log.0.gz, system.log.1.gz etc. No sé si incluso estos se remontará 30 días sin embargo.

10voto

Polo Puntos 574

Si es suficiente con tener una lista de todos los ciclos de sueño/vigilia (tapa-abierta, tapa-cerrada), se 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.

0 votos

Vaya, gracias por esta respuesta tan rápida. Parece prometedor. ¿Hay alguna posibilidad de obtener más de 14 días con pmset? (Necesito al menos 30 días)

3 votos

Esto no me funcionó en OSX. Me daba fechas incorrectas. Pero esto funcionó como un encanto: pmset -g log | grep 'Display is turned on' .

0 votos

¡Qué bien! Puedes obtener una mejor línea de tiempo si utilizas un solo comando: pmset -g log | grep -E 'Wake from|Entering Sleep'

1voto

Trane Francks Puntos 1476

Miré esto un poco y parece factible, pero usted tendrá que mirar a su comportamiento con el sistema en el tiempo para determinar exactamente qué mensajes en los registros para grep. Hice el siguiente conjunto de pasos para analizar la historia completa de los ciclos de sueño / vigilia para este MacBook y se remonta todo el camino hasta el 12 de agosto.

Condiciones previas: Escribir al usuario no root en ~/Downloads. Cambiar las rutas y los nombres de los archivos de salida como se 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 darte un salto decente para llegar a una imagen más completa. Puedes examinar los registros del kernel para saber cuándo se reinició el sistema, etc. Una vez que sepas qué filtrar, podrás ampliarlo bastante. Diviértete con ello.

Ah, una nota final: si estás examinando un sistema que visita muchas redes, verás que el nombre de tu sistema cambia en los registros según lo que el servidor DNS asocia con tu dirección IP. Parece un poco extraño, pero es un comportamiento bastante normal.

0 votos

Gracias por su detallada respuesta. Jugué un poco con tu script y tuve que modificar las siguientes cosas - los archivos se llaman system.log en lugar de kernel.log en mi MacBook - en lugar de bunzip2 Necesito utilizar gunzip - elimine los archivos antiguos al principio rm ~/Downloads/wakeup.txt rm ~/Downloads/sortedwake.txt Entonces su script funciona bien PERO desafortunadamente sólo contiene 9 días de historial (el archivo de registro más antiguo es system.log.9.gz ). ¿Hay copias de seguridad ocultas más antiguas en algún sitio?

0 votos

Muy bien, de la lectura apple.stackexchange.com/preguntas/77373/ He descubierto que los archivos system.log se rotan automáticamente y se eliminan al cabo de unos días. Intentaré cambiar /etc/newsyslog.conf como sigue: /var/log/system.log 640 40 * @T00 J Esto en el futuro con suerte preservar mi system.log archivos durante 40 días. (Perdón por el feo formato, mini-Markdown está roto en este momento)

0 votos

@Joshua, buena suerte con ello.

1voto

Finalmente lo envolví en un oneliner que extrae los eventos de sueño y vigilia 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 utiliza log en lugar de syslog utilice 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
  • Pista 2: El comando syslog también busca automáticamente las entradas archivadas de system.log. Por defecto hay 10 copias de seguridad diarias de system.log. Para guardar 30 días de copias de seguridad de system.log para futuras referencias, añada la siguiente línea a /var/log/newsystemlog.conf : (aún se está evaluando su funcionamiento)


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

@trane-francks @aglasser ¡Gracias por vuestras aportaciones! Han ayudado a localizar el problema.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X