Liste aller Daten+Zeiten, wann ich mein MacBook benutzt habe?

Ich benötige eine Liste der Zeiträume, in denen ich mein MacBook in den letzten 30 Tagen verwendet habe.

Es würde ausreichen, eine Liste aller Datumsangaben zum Öffnen und Schließen des Deckels zu haben (weil ich den Deckel schließe, wenn ich das MacBook nicht benutze). Eine chronologische Liste aller Sleep / Wakeup / Poweroff / Poweron (und vielleicht Login) Datetimes würde ebenfalls helfen.

Was nicht geholfen hat:

  • Googeln
  • Der lastBefehl
  • Filterung /var/log/system.log(die übrigens nur einen Tag enthält)
  • Filtern der Konsolen-App (aber vielleicht gibt es einen Weg ...)
system.log wird von Zeit zu Zeit rotiert und Sie können die vorherigen Protokolle sehen, wenn Sie in der Konsole nach system.log.0.gz, system.log.1.gz usw. suchen. Ich weiß nicht, ob selbst diese 30 Jahre zurückgehen Tage jedoch.

Antworten (3)

Wenn es ausreicht, eine Liste aller Schlaf-/Wachzyklen (Deckel offen, Deckel geschlossen) zu haben, können Sie Folgendes ausführen:

pmset -g log | grep ' Wake '

oder

pmset -g log | grep ' sleep '

Spielen Sie mit der an grep übergebenen Zeichenfolge herum, um die benötigten Informationen zu erhalten.

Wow, danke für diese schnelle Antwort. Das sieht vielversprechend aus! Besteht die Möglichkeit, mit pmset mehr als 14 Tage auszugeben? (Ich brauche mindestens 30 Tage)
Das hat bei mir unter OSX nicht funktioniert. Es gab mir falsche Datumszeiten. Aber das funktionierte wie ein Zauber: pmset -g log | grep 'Display is turned on'.
Hübsch! Sie können eine bessere Zeitleiste erhalten, wenn Sie nur einen Befehl verwenden:pmset -g log | grep -E 'Wake from|Entering Sleep'

Ich habe mir das ein wenig angesehen und es scheint machbar zu sein, aber Sie müssen sich Ihr Verhalten mit dem System im Laufe der Zeit ansehen, um genau zu bestimmen, welche Nachrichten in den Protokollen zu grep sind. Ich habe die folgenden Schritte ausgeführt, um den vollständigen Verlauf der Schlaf-/Wachzyklen für dieses MacBook zu analysieren, und er reicht bis zum 12. August zurück.

Voraussetzungen: Schreiben an Nicht-Root-Benutzer in ~/Downloads. Ändern Sie Pfade und Ausgabedateinamen wie gewünscht.


#!/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

Das sollte Ihnen einen ordentlichen Sprung geben, um zu einem vollständigeren Bild zu gelangen. Sie können die Kernel-Protokolle untersuchen, um Sie darüber zu informieren, wann das System neu gestartet wurde usw. Sobald Sie wissen, wonach Sie filtern müssen, können Sie dies erheblich erweitern. Viel Spass damit.

Oh, noch eine letzte Anmerkung: Wenn Sie ein System untersuchen, das viele Netzwerke besucht, werden Sie feststellen, dass sich Ihr Systemname in den Protokollen ändert, je nachdem, was der DNS-Server mit Ihrer IP-Adresse verknüpft. Es sieht ein wenig seltsam aus, aber es ist ein ganz normales Verhalten.

Danke für deine ausführliche Antwort! Ich habe ein wenig mit Ihrem Skript gespielt und musste folgende Dinge ändern - Dateien heißen system.log statt kernel.log auf meinem MacBook - statt ich muss bunzip2verwenden gunzip- alte Dateien am Anfang entfernen rm ~/Downloads/wakeup .txt rm ~/Downloads/sortedwake.txt Dann funktioniert Ihr Skript gut, ABER es enthält leider nur 9 Tage Verlauf (die älteste Protokolldatei ist system.log.9.gz). Gibt es irgendwo ältere versteckte Backups?
In Ordnung, beim Lesen von apple.stackexchange.com/questions/77373/… habe ich herausgefunden, dass die system.log-Dateien automatisch rotiert und nach einigen Tagen beschnitten werden. /etc/newsyslog.confIch werde versuchen , wie folgt zu ändern : /var/log/system.log 640 40 * @T00 J Dies wird in Zukunft hoffentlich meine system.log-Dateien für 40 Tage erhalten. (Sorry für die hässliche Formatierung, Mini-Markdown ist momentan kaputt)
@Joshua, viel Glück damit.

Ich habe es schließlich in einen Einzeiler gepackt, der System-Sleep- und Wake-Ereignisse aus mehreren Protokolldateien extrahiert:

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

Wenn Ihr System bereits verwendet, verwenden Sie logstattdessen syslogden folgenden Befehl:

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

  • Hinweis 1: pmset ist auf 14 Tage begrenzt
  • Tipp 2: Der syslog-Befehl durchsucht automatisch auch archivierte system.log-Einträge. Standardmäßig gibt es 10 tägliche system.log-Sicherungen. Um 30 Tage system.log-Sicherungen für zukünftige Referenzen zu speichern, fügen Sie die folgende Zeile zu hinzu /var/log/newsystemlog.conf: (immer noch prüfen, wie gut das funktioniert)


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

@trane-francks @aglasser Vielen Dank für Ihre Beiträge! Sie halfen, das Problem aufzuspüren.