Woher weiß mein Sys-Administrator, dass ich mein System nicht neu gestartet habe?

35

Ich erhielt eine E-Mail von meinem Systemadministrator, dass ich mein System neu starten musste, um einige Patches anzuwenden. Ich hatte es vergessen und nach ein paar Stunden erhielt ich eine weitere E-Mail, die mir mitteilte, dass ich mein System noch nicht neu gestartet hatte.

Ich habe mein System seitdem neu gestartet, aber ich bin überrascht, woher sie wissen, ob ich meinen Computer neu gestartet habe oder nicht. Kann jemand erklären, wie das funktioniert?

nikhil
quelle
10
Vielleicht solltest du ihn einfach fragen?
Marco Ceppi
1
Wow, ich habe nie bemerkt, dass es so viele Möglichkeiten gibt. Danke Leute!
Nikhil

Antworten:

43

Eine schnelle Möglichkeit, dies aus der Ferne zu überprüfen, bietet SNMP (vorausgesetzt, Ihr SysAdmin hat dies in Ihrem Netzwerk eingerichtet):

admin@yourcompany:~$ snmpwalk -v 2c -c <snmpstring> MachineName sysUpTimeInstance
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (9461615) 1 day, 2:16:56.15

Höchstwahrscheinlich würden die Daten abgefragt und in einem Netzwerkverwaltungs- / Überwachungssystem (z. B. Nagios oder Cacti) gespeichert.

Falls jemand daran interessiert ist, mit dem snmpwalkBefehl herumzuspielen, lesen Sie die Antwort hier , um eine grundlegende SNMP-Konfiguration auf Ihrem System einzurichten.

Kevin Bowen
quelle
Schön. Jemand hier hat ein Skript erstellt, das ein bisschen schwierig zu pflegen ist und dieses eine Liner sieht gut aus: D Danke und habe eine positive Bewertung;)
Rinzwind
@ Rinzwind Danke. Hier ist ein weiterer Einzeiler, den ich manchmal benutzesudo hping3 -c 2 -p 80 --tcp-timestamp -S <IPaddress> 2>&1 | grep uptime
Kevin Bowen
Dies kann jede normale Überwachungssoftware, jedoch ist SNMP die häufigste und dies ist ein gutes Beispiel. +1.
Gertvdijk
28

Eine einfache Methode besteht darin, die Ausgabe des uptimeBefehls zu überprüfen , aus der hervorgeht, wie lange Sie das System ohne Herunterfahren / Neustarten ausgeführt haben.

Beispielausgabe:

saji@geeklap:~$ uptime
12:41:29 up  3:08,  2 users,  load average: 1.06, 0.85, 0.86

Es heißt, dass mein System 3 Stunden und 8 Minuten lang eingeschaltet war.

Der Administrator kann ein Shell-Skript einrichten, um eine der uptimein diesem Link beschriebenen Methoden zu verwenden oder eine andere Methode zu verwenden . Eine andere Methode, die der Administrator verwenden kann, besteht darin, eine E-Mail einzurichten, die beim Herunterfahren oder Neustart des Systems gesendet wird. Die Details finden Sie unter diesem Link .

saji89
quelle
Könnte dies aus der Ferne erfolgen, wenn sie keinen Zugang hatten, um sich bei meinem Computer anzumelden?
Nikhil
1
Ein Administrator hat mit Sicherheit zu Verwaltungszwecken Zugriff auf Ihr System. :)
Saji89
5
unwahrscheinlich @ saji89 Ein Administrator hat bessere Dinge zu tun, als jedes System vor Ort auf Verfügbarkeit zu überprüfen ...
Rinzwind
2
@ Rinzwind, ich habe nicht gesagt, dass er es benutzen soll. Ich habe nur darauf hingewiesen, dass er Zugriff auf die Maschine haben wird. In diesem speziellen Fall hatte der Administrator Gründe, dies zu überprüfen. :)
Saji89
1
Ach ok Aber ich habe bessere Dinge zu tun, als die Verfügbarkeit der Systeme zu überprüfen;) @ saji89
Rinzwind
9

@ saji89 hat den uptimeBefehl erwähnt. Ich gehe einen Schritt tiefer und setze einfach voraus, dass der Sysadmin irgendwo ein Skript hat, das eine Verbindung zu jedem Computer herstellt und ein cat /proc/uptime(oder etwas Äquivalentes) ausführt. Das erste Feld der Ausgabe ist die Zeit in Sekunden seit dem letzten Neustart des Systems, die viel einfacher zu analysieren ist als die Ausgabe von uptime. Zum Beispiel gibt mein Computer ein erstes Feld für die Verfügbarkeit 1441218.24bei der uptimeRückkehr an up 16 days, 16:20. 1441218 Sekunden sind 16 Tage plus 58818 Sekunden und 58818 Sekunden sind 16 1/3 Stunden. 16 Tage 16 1/3 Stunden.

Wenn Sie die maximale Länge der Zeit kennen , da das System sollte neu gestartet wurde, machen diese Daten es trivial , um zu prüfen , ob das System seither oder nicht neu gestartet wurde.

Dies könnte durch ein Überwachungstool wie Nagios oder durch ein separates Skript geschehen, das der Systemadministrator auf seinem Computer führt (oder, wie ich mir vorstellen würde, über dieses Skript zugänglich ist), das sich nacheinander oder parallel mit jedem Computer verbindet und die Zeit ausgibt seit dem letzten Neustart in einem bestimmten Format. Das hängt alles davon ab, wie aufwendig es gemacht wird.

ein CVn
quelle
8

Der Vollständigkeit halber kann man auch /var/log/wtmpüber den letzten Befehl nachsehen . Beispiel:

$ last reboot
reboot   system boot  3.2.0-36-generic Thu Jan 24 16:25 - 17:42 (1+01:17)   

wtmp begins Tue Jan  1 06:30:03 2013

Diese Methode ist sehr beliebt, weil sie auch die perfekte Gedächtnisstütze ist.

Q: When did the last reboot occur? 
A: Just type 'last reboot'
Arielf
quelle
7

Wenn ein Paket, das einen Neustart erfordert, über aktualisiert wurde apt, wird eine aufgerufene Datei reboot-requiredin erstellt /var/run/. Der Systemadministrator kann remote prüfen, ob diese Datei vorhanden ist, um festzustellen, ob aufgrund von Aktualisierungen ein Neustart erforderlich ist.

onik
quelle
Das Betriebssystem wurde vom Systemadministrator aufgefordert, den Computer neu zu starten, um "einige Patches anzuwenden". Zumindest für mich bedeutet dies, dass das eigentliche Update durch einen Mechanismus während des Startvorgangs erfolgt . (Vielleicht ein Boot-Skript, das etwas in der Art von ausführt apt-get -y upgrade.) Es würde also kein geben, reboot-requiredda aus Sicht von apt ein Neustart noch nicht erforderlich ist.
ein Lebenslauf am
2
Ich bezweifle, dass dies der Fall ist, da der Benutzer zweimal neu starten muss, wenn nach der Installation ein Neustart der Updates erforderlich ist. Wenn keine Updates vorhanden sind, für die ein Neustart erforderlich ist, kann der Sysadmin dasselbe Skript remote ausführen und im Hintergrund aktualisieren . Ohne mehr zu wissen, würde ich vermuten, dass es ein Kernel-Image-Upgrade gab (oder etwas anderes, das einen Neustart erforderte), und der Benutzer musste neu starten, um den neuen Kernel anzuwenden. Aber das ist nur eine Vermutung.
Onik
2

Dies ...

einige Patches anwenden

ist der Schlüsselteil.

Wenn der Administrator gut ist, hat er wahrscheinlich die Updates von seinem Computer eingerichtet, damit die PCs nicht die gleiche Datei aus dem Internet herunterladen müssen. Wenn ja, kann er auf seinem eigenen Computer sehen, wer die Patches heruntergeladen hat.

Er muss dann nur noch die IP-Adressen der Systeme überprüfen, die die Patches geladen haben, und diese an diejenigen senden und per E-Mail versenden, die dies nicht getan haben. Diese E-Mail kann sogar eine automatisch generierte E-Mail sein. Stellen Sie sich vor, es gibt 500 Maschinen. Es ist Zeitverschwendung, jeden von ihnen manuell zu überprüfen, wenn es mehrere Methoden gibt, die er aus eigener Kraft ausführen kann.

Ein sehr wichtiger Grund dafür ist, dass ein Administrator die Kontrolle darüber hat, was auf den zu wartenden Systemen geschieht. Er sollte also immer einen einzigen Kontrollpunkt haben (dh seine eigene Maschine, auf der er alle Werkzeuge hat), an dem er den Status jeder Maschine sehen kann.

Rinzwind
quelle
3
Möglicherweise müssen Sie einen Neustart durchführen, um die Patches anzuwenden. Es kann jedoch nicht garantiert werden, dass der Download nur beim Neustart erfolgt.
Karthik T
2

In den Antworten werden mehrere gültige Methoden beschrieben. Sich einzuloggen und die Verfügbarkeit zu überprüfen, wäre für ein großes Unternehmen ungewöhnlich, aber für ein kleineres Unternehmen machbar. Der Sysadmin hätte über SNMP prüfen können, aber das gleiche "Problem" -Argument könnte dort verwendet werden.

Die wahrscheinlichsten Situationen sind für mich:

  1. Der Sysadmin führt eine Art Überprüfungssoftware aus, wahrscheinlich Nagios, die Computercluster auf Probleme überprüft. So etwas wie das NRPE-Plugin wird für die meisten Systeme verwendet und kann die Betriebszeit anzeigen (abgesehen von Datenträgern, angemeldeten Benutzern usw.).
  2. Eine ähnliche Methode kann verwendet werden, um zu überprüfen, was wo läuft. Wenn die zu aktualisierenden Patches überprüft werden können (welcher Kernel verwendet wird), zeigt das Skript "Werden alle Benutzer aktualisiert" weiterhin auf Ihren Computer, weil er sich in einem "fehlerhaften" Zustand befindet.
Nanne
quelle
1

Wenn das System mit einem von ihm kontrollierten Netzwerk verbunden ist, kann der Sysadmin einfach auf den Switch oder den DHCP-Server schauen, um festzustellen, wie lange Ihre Netzwerkverbindung aktiv war. Das wird ihm auch sagen, dass Sie nicht neu gestartet haben.

Dennis Kaarsemaker
quelle