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:
last
Befehl/var/log/system.log
(die übrigens nur einen Tag enthält)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.
pmset -g log | grep 'Display is turned on'
.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.
bunzip2
verwenden 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?/etc/newsyslog.conf
Ich 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)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 log
stattdessen syslog
den folgenden Befehl:
(pmset -g log|grep -e " Sleep " -e " Wake "; log show | grep -e "System Sleep" -e " Wake reason:") | more
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.
Glühwürmchen