Comment mon administrateur système sait-il que je n'ai pas redémarré mon système?

35

J'ai reçu un email de mon administrateur système me disant que je devais redémarrer mon système pour appliquer certains correctifs. J'avais oublié ça et après quelques heures, j'ai reçu un autre mail me disant que je n'avais pas encore redémarré mon système.

Depuis, j'ai redémarré mon système, mais je suis surpris de voir comment ils sauraient si j'ai redémarré ma machine ou non. Quelqu'un peut-il expliquer comment cela fonctionne?

nikhil
la source
10
Tu devrais peut-être juste lui demander?
Marco Ceppi
1
Wow, je n'ai jamais réalisé qu'il y avait tant de façons. Merci les gars!
Nikhil

Réponses:

43

Un moyen rapide de vérifier cela à distance peut être fait en utilisant SNMP (à condition que votre SysAdmin l'ait configuré sur votre réseau):

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

Très probablement, les données seraient interrogées et stockées dans un système de gestion / surveillance de réseau (par exemple, Nagios ou Cacti).

Si quelqu'un souhaite jouer avec la snmpwalkcommande, consultez la réponse ci- dessous pour obtenir une configuration SNMP de base configurée sur votre système.

Kevin Bowen
la source
Joli. Quelqu'un ici a créé un script qui a l'air un peu difficile à maintenir et ce doublure est très joli: D Merci et je vous souhaite un vote positif;)
Rinzwind
@Rinzwind Merci. Voici un autre one-liner que j'utilise parfoissudo hping3 -c 2 -p 80 --tcp-timestamp -S <IPaddress> 2>&1 | grep uptime
Kevin Bowen
Tous les logiciels de surveillance habituels peuvent le faire, mais SNMP est le plus courant et constitue un bel exemple. +1
gertvdijk
28

Une méthode simple consiste à vérifier le résultat de la uptimecommande, qui indique la durée pendant laquelle vous avez exécuté le système sans arrêt / redémarrage.

Exemple de sortie:

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

Il indique que mon système est sous tension depuis 3 heures et 8 minutes.

L'administrateur peut configurer un script shell pour utiliser uptimeou utiliser une autre méthode, comme indiqué dans ce lien . Une autre méthode que l’administrateur peut utiliser consiste à configurer un courrier électronique à envoyer à l’arrêt ou au redémarrage du système. Les détails sont disponibles sur ce lien .

saji89
la source
Est-ce que cela peut être fait à distance s'ils n'ont pas accès à ma machine?
Nikhil
1
Un administrateur aura très certainement accès à votre système, à des fins administratives. :)
saji89
5
improbable @ saji89 Un administrateur a mieux à faire que de vérifier le temps de disponibilité de chaque système localement ...
Rinzwind
2
@Rinzwind, je ne disais pas qu'il devrait l'utiliser. Je faisais simplement remarquer qu'il aurait accès à la machine. Dans ce cas particulier, l'administrateur avait des raisons de vérifier. :)
saji89
1
Ah ok. Mais j'ai mieux à faire que de vérifier le temps de bon fonctionnement des systèmes;) @ saji89
Rinzwind
9

@ saji89 a mentionné la uptimecommande. Je vais aller un peu plus bas et dire simplement que l'administrateur système a un script quelque part qui se connecte à chaque ordinateur et fait un cat /proc/uptime(ou quelque chose d'équivalent). Le premier champ de la sortie est le temps, en secondes, depuis le dernier redémarrage du système, ce qui est beaucoup plus facile à analyser que la sortie uptime. Par exemple, mon ordinateur affiche un premier champ de disponibilité 1441218.24avec uptimereturn up 16 days, 16:20. 1441218 secondes correspondent à 16 jours plus 58818 secondes et 58818 secondes à 16 1/3 heures. 16 jours 16 heures 1/3.

Lorsque vous connaissez la longueur maximale du temps car le système doit avoir été redémarré, ces données rend trivial de vérifier si le système a été redémarré depuis lors ou non.

Cela pourrait être fait par un outil de surveillance tel que Nagios, ou par un script séparé que l'administrateur système conserve sur son ordinateur (ou plutôt accessible par ce biais, j'imagine), qui se connecte à chaque ordinateur à tour de rôle ou en parallèle et affiche l'heure. depuis le dernier redémarrage dans un format. Tout dépend de la complexité de la fabrication.

un CVn
la source
8

Une autre façon, juste pour être complet, consiste à regarder /var/log/wtmpvia la dernière commande. Exemple:

$ 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

Cette méthode est très appréciée car elle se révèle également être la mnémonique parfaite.

Q: When did the last reboot occur? 
A: Just type 'last reboot'
arielf
la source
7

Lorsqu'un paquet nécessitant un redémarrage a été mis à jour via apt, un fichier appelé reboot-requiredest créé /var/run/. L'administrateur système peut vérifier la présence de ce fichier à distance pour déterminer si un redémarrage est requis en raison de mises à jour.

onik
la source
L'administrateur système a demandé à l'OP de redémarrer l'ordinateur "pour appliquer certains correctifs". Au moins pour moi, cela implique que la mise à jour proprement dite se fasse par un mécanisme quelconque au cours du processus de démarrage . (Peut-être un script de démarrage exécutant quelque chose dans le sens de apt-get -y upgrade.) Donc, il n'y en aurait pas, reboot-requiredcar du point de vue d'apt, un redémarrage n'est pas encore nécessaire.
un CVn
2
Je doute que ce soit le cas, car l'utilisateur devra redémarrer deux fois si les mises à jour nécessitent un redémarrage après l'installation, et si aucune mise à jour ne nécessite un redémarrage, l'administrateur système pourrait simplement exécuter à distance le même script et le mettre à jour en arrière-plan. . Sans en savoir plus, je suppose qu'il y avait une mise à niveau de l'image du noyau (ou quelque chose d'autre nécessitant un redémarrage), et l'utilisateur devait redémarrer pour appliquer le nouveau noyau. Mais ce n'est que conjecture.
Onik
2

Cette ...

appliquer des patchs

est la partie clé.

Si l'administrateur est bon, il a probablement configuré les mises à jour à partir de la machine HIS pour que les PC n'aient pas à télécharger le même fichier sur le Web. Si tel est le cas, il peut voir depuis sa propre machine qui a téléchargé les correctifs.

Il n'a alors plus qu'à regarder les adresses IP des systèmes qui ont chargé les correctifs, puis les envoyer et les envoyer par courrier électronique à ceux qui ne les ont pas. Cet email peut même être un mail généré automatiquement. Imaginez il y a 500 machines. Vérifier manuellement chacune d’elles est une perte de temps s’il existe plusieurs méthodes qu’il peut utiliser à partir de son propre machime.

Une raison très importante de le faire de cette façon: un administrateur doit pouvoir contrôler ce qui se passe sur les systèmes qu’il doit entretenir. Donc, il devrait toujours avoir un seul point de contrôle (c'est-à-dire sa propre machine où il a tous les outils) où il peut voir l'état de n'importe quelle machine.

Rinzwind
la source
3
Vous devrez peut-être redémarrer pour appliquer les correctifs, rien ne garantit que le téléchargement se produit uniquement au redémarrage.
Karthik T
2

Il existe plusieurs méthodes valables décrites dans les réponses. Se connecter et vérifier le temps de disponibilité serait étrange pour une grande entreprise, mais réalisable pour une plus petite. L'administrateur système aurait pu vérifier via SNMP, mais le même argument "trouble" pourrait être utilisé ici.

Les situations les plus probables sont, en ce qui me concerne:

  1. L’administrateur système exécute une sorte de logiciel de vérification, probablement Nagios, qui vérifie les clusters d’ordinateurs. Quelque chose comme le plugin NRPE sera utilisé pour la plupart des systèmes et peut vous montrer la disponibilité (en dehors du disque, des utilisateurs connectés, etc.).
  2. Une méthode similaire peut être utilisée pour vérifier ce qui est en cours d'exécution où. Si les correctifs à mettre à jour peuvent être vérifiés (quel noyau utilisez-vous), le script "Tous les utilisateurs sont-ils mis à jour" continuera de pointer sur votre ordinateur pour indiquer qu'il est dans un état "incorrect".
Nanne
la source
1

Si le système est connecté à un réseau qu'il contrôle, l'administrateur système peut simplement regarder le commutateur ou le serveur DHCP pour voir combien de temps votre connexion réseau a été active. Cela lui dira également que vous n'avez pas redémarré.

Dennis Kaarsemaker
la source