wall < "@reboot"

Broadcast message from spillerm@unixe.de (pts/1) (Do Aug 26 21:51:40 2010):
4
Diesen Beitrag schrieb ich vor 8 Jahren. Behalte das beim Lesen bitte im Hinterkopf.

Auf manchen Systemen kann der Aufruf von last auch zu einem Fehler führen, weil die Datei /var/log/{w,b}tmp nicht existiert — in diesem Falle genügt es, sie mit touch anzulegen!

Manchmal ist es ja schon ganz nützlich mal zu sehen, wann ein System zuletzt rebootet bzw. heruntergefahren wurde. Und weil es offenbar doch so einige Leute gibt, die damit nicht so vertraut sind, hier mal ein paar Eckdaten. Mit dem last-Kommando kann man sich zum Beispiel die User ausgeben lassen, die auf dem System eingeloggt sind und waren — und zwar vom Zeitpunkt des Erstellungsdatums der Datei /var/log/wtmp an. Zeilenweise wird sodann der Username ausgegeben, TTY, Hostname, Start- und Endzeit der Verbindung sowie die Verbindungsdauer. Ein Beispiel:

$ last | head -3
spillerm pts/0        bla.cs.uni-saarl Thu Aug 26 13:01   still logged in   
ftp      ftpd15259    crawl-66-249-66- Thu Aug 26 12:18 - 12:18  (00:00)    
ftp      ftpd15258    crawl-66-249-66- Thu Aug 26 12:18 - 12:18  (00:00)

Will man nur die Aktivität eines bestimmten Users nachvollziehen, gibt man dem last-Kommando den Usernamen als Parameter mit:

$ last username | head -3
username pts/0        bla.cs.uni-saarl Thu Aug 26 13:01   still logged in   
username pts/1        p5b153be2.dip.t- Fri Aug 20 09:53 - 21:46  (11:52)    
username pts/3        p5b153be2.dip.t- Fri Aug 20 09:46 - down   (00:05)

Der reboot-Pseudo-User wird jedesmal als »eingeloggt« gelistet, wenn das System rebootet wurde — insofern lassen sich auch die Reboots mit dem last-Kommando gut nachvollziehen. Beachtet die letzte Spalte: bei den Usern gibt sie die Dauer der Verbindung an, also die Zeit, die der User eingeloggt war — beim reboot-User gibt sie die Uptime des Systems an, wobei volle 24 Stunden in Form von Tagen vorangestellt werden: (10+14:46) bedeutet also eine Uptime von 10 Tagen, 14 Stunden und 46 Minuten.

$ last reboot | head -3
reboot   system boot  2.6.32-24-server Fri Aug 20 09:53 - 13:12 (6+03:18)   
reboot   system boot  2.6.32-24-server Tue Aug 10 07:59 - 09:51 (10+01:52)  
reboot   system boot  2.6.32-24-server Mon Aug  9 18:54 - 09:51 (10+14:56)

Ein nettes (und doch recht unbekanntes) Feature ist der -x-Parameter des last-Kommandos: dann werden auch die Shutdowns nebst Runlevel Changes gezeigt:

$ last -x | grep server | head -6
runlevel (to lvl 2)   2.6.32-24-server Fri Aug 20 09:53 - 13:16 (6+03:23)   
reboot   system boot  2.6.32-24-server Fri Aug 20 09:53 - 13:16 (6+03:23)   
shutdown system down  2.6.32-24-server Fri Aug 20 09:52 - 09:53  (00:00)    
runlevel (to lvl 6)   2.6.32-24-server Fri Aug 20 09:51 - 09:52  (00:01)    
runlevel (to lvl 2)   2.6.32-24-server Tue Aug 10 07:59 - 09:51 (10+01:52)  
reboot   system boot  2.6.32-24-server Tue Aug 10 07:59 - 09:51 (10+01:52)

Will man hingegen nur kurz den Zeitpunkt des letzten Reboots herausfinden, so geht das auch mit einem einfachen who:

$ who -b
         system boot  2010-08-20 09:53

Wichtig auch zu wissen: die Files /var/log/{w,b}tmp lassen sich nicht mit less oder ähnlichen Kommandos sinnvoll ausgeben; hier werden zwingend last bzw. lastb benötigt, wobei letzteres prinzipiell das selbe tut wie last — de facto ist es ein Symlink auf last — jedoch /var/log/btmp auswertet und somit die fehlgeschlagenen Login-Versuche am System aufzeigt.

4