@reboot

Diesen Beitrag schrieb ich 14 Jahre und 3 Monate zuvor; die nachfolgenden Ausführungen müssen heute weder genau so nach wie vor funktionieren, noch meiner heutigen Meinung entsprechen. Behalte das beim Lesen (und vor allem: beim Nachmachen!) bitte stets im Hinterkopf.

Geschätzte Lesezeit: 2 Minuten

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)

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! 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.

Alle Bilder dieser Seite: © Marianne Spiller – Alle Rechte vorbehalten
Hintergrundbild: Bild genauer anschauen – © Marianne Spiller – Alle Rechte vorbehalten

Eure Gedanken zu „@reboot“

Ich freue mich über jeden Kommentar, es sei denn, er ist blöd. Deshalb behalte ich mir auch vor, die richtig blöden kurzerhand wieder zu löschen. Die Kommentarfunktion ist über GitHub realisiert, weshalb ihr euch zunächst dort einloggen und „utterances“ bestätigen müsst. Die Kommentare selbst werden im Issue-Tracker und mit dem Label „✨💬✨ comment“ erfasst – jeder Blogartikel ist ein eigenes Issue. Über GitHub könnt ihr eure Kommentare somit jederzeit bearbeiten oder löschen.