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

Bestaat er een logboek dat uitschakelingen in Linux registreert?

Ik vroeg me af of er een logbestand is in Linux dat bijhoudt wanneer de computer wordt afgesloten?

De reden waarom ik dit vraag is dat ik wat tests aan het doen ben over hoe lang de batterij van mijn laptop meegaat onder bepaalde omstandigheden. Mijn laptop is geconfigureerd om automatisch af te sluiten als er nog ongeveer 10 minuten batterij over is, dus als er ergens een logbestand is dat bijhoudt wanneer de computer wordt afgesloten, zal dat mijn testen veel gemakkelijker maken.

Ik draai Ubuntu 10.04. Bedankt!

Antwoorden (8)

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

Wat dacht je van commando last -x shutdown?

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

Het /var/log/messages bestand zou echt iets moeten hebben met betrekking tot shutdowns, bijvoorbeeld de mijne (CentOS 5) heeft regels als deze:

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.

Controleer je /etc/syslog.conf of /etc/rsyslog.conf of gelijkwaardig om er zeker van te zijn dat er logs naartoe gaan. Je hebt waarschijnlijk root privileges nodig om de logbestanden te lezen.

Ook al zijn het geen shutdowns per se, het “last” commando zou reboots moeten rapporteren.

Staat er echt helemaal niets in de logbestanden rond de tijd dat je voor het laatst afgesloten hebt?

Bedenk bij het testen dat de computer alleen weet dat hij nog 10 minuten heeft door de informatie die de batterij rapporteert, en die al dan niet accuraat kan zijn. In plaats van te wachten op uitschakelingen, zou je direct naar de ACPI informatie kunnen kijken. Op mijn laptop staat die hier:

/proc/acpi/battery/BAT0/

Daarin zien de “state” en “info” bestanden er interessant uit. Je zou de resterende capaciteit in het “state” bestand kunnen bekijken terwijl je je laptop onder verschillende omstandigheden gebruikt, om te zien hoe snel deze afneemt.

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

Laat ik beginnen met te zeggen dat ik weet dat dit een oudere draad is. Ik geef alleen commentaar zodat anderen die dit vinden terwijl ze op het net rondneuzen (zoals ik vandaag deed) een duidelijk antwoord zullen hebben.

Ten tweede, merk op dat het volgende commando een slechte gewoonte is en valt onder de categorie “nutteloos gebruik van cat” (google er maar eens naar)…

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

Die regel moet veranderd worden in:

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

grep, en de meeste unix/linux commando’s (sed, awk, etc…) hebben cat niet nodig om de inhoud van een bestand te lezen. Het is voldoende om het bestandspad en de bestandsnaam achter het commando te plaatsen om het als argument door te geven. Het toevoegen van een pipe en nog een extern commando (cat) is gewoon verspilde tijd en middelen.

Als je wilt weten waar je een verslag kunt vinden van het afsluiten en/of opnieuw opstarten van het systeem, gebruik dan het laatste commando, want dat is precies waar het voor bedoeld is. Het leest het /var/log/wtmp logbestand voor alle login/logout entries. Omdat shutdowns en reboots eigenlijk een login/logout gebeurtenis op systeemniveau zijn, worden ze hier geregistreerd. Hetzelfde geldt voor root console shutdown, het is een logout gebeurtenis.

Voorbeeld:

last -5 reboot shutdown root

Dit geeft je de laatste 5 reboot, shutdown, en root (inclusief console shutdown) entries in het wtmp log.

Resultaat:

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

Ik hoop dat dit iedereen helpt die op deze draad stuit. :-)

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

Het bestand /var/log/messages zou deze informatie moeten bevatten

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

Als je wilt bijhouden hoe lang je computer in het verleden aan heeft gestaan, kun je iets gebruiken als uptimed.

het komt met een programma genaamd uprecords dat je laat zien hoe lang je computer aan heeft gestaan.

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

last reboot werkte voor mij op CentOS 6.7.

Om het jaar in de uitvoer te tonen, zodat het zin heeft als je meer dan een jaar aan records hebt, doe je

last -F reboot Hoewel ik begrepen heb dat de -F switch niet werkt op sommige systemen, zoals Solaris. Het is blijkbaar een deel van GNU’s laatste, dat wel.

Met dank aan https://unix.stackexchange.com/a/97597/174520

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

Hier is een one-liner om alle berichten van de huidige dag op te sommen:

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

Dit is getest op CentOS, dus YMMV.

En natuurlijk is er ook nog last reboot en last shutdown (zoals vermeld), maar dit is te eenvoudig voor mijn behoeften (geeft alleen datums).

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

Als er geen log aanwezig is, kun je proberen om wat ‘date >mylog’ aan shutdown script toe te voegen (in sommige dists, heet het rc.shutdown)

of, er is ook een manier zonder dat er previlage nodig is. run:

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

en volg mylog bij de volgende sessie.