Par exemple, je vois ceci dans /var/log/messages
:
Mar 01 23:12:34 hostname shutdown: shutting down for system halt
Y a-t-il un moyen de savoir ce qui a causé la fermeture? Par exemple, a-t-il été lancé depuis la console ou quelqu'un a-t-il appuyé sur le bouton d'alimentation, etc.
/var/log/acpid
: s'est avéré que le bouton d'alimentation a été touché. Toute autre idée, où chercher si Acpid ne donne pas d'indice?Réponses:
Seuls les programmes à privilèges root peuvent arrêter gracieusement un système. Ainsi, lorsqu'un système s'arrête normalement, il s'agit soit d'un utilisateur avec des privilèges root, soit d'un script acpi. Dans les deux cas, vous pouvez le savoir en consultant les journaux. Un arrêt acpi peut être provoqué par une pression sur le bouton d'alimentation, une surchauffe ou une batterie faible (ordinateur portable). J'ai oublié la troisième raison, le logiciel de l'onduleur en cas de panne d'alimentation, qui envoie quand même une alerte.
Récemment, j'ai eu un système qui a démarré à plusieurs reprises pour éteindre sans grâce, s'est avéré qu'il était en surchauffe et le mobo a été configuré pour simplement éteindre tôt. Le système n'a pas pu sauvegarder les journaux, mais heureusement, la surveillance de la température du système a montré qu'il commençait à augmenter juste avant la mise hors tension.
Donc, s’il s’agit d’un arrêt normal, il sera enregistré, s’il s’agit d’une intrusion ... bonne chance, et s’il s’agit d’un arrêt à froid, votre meilleure chance de le savoir est de contrôler et de surveiller son environnement.
la source
Essayez les commandes suivantes:
Afficher la liste des dernières entrées de redémarrage:
last reboot | less
Afficher la liste des dernières entrées d'arrêt:
last -x | less
ou plus précisément:
last -x | grep shutdown | less
Vous ne saurez pas qui l'a fait cependant. Si vous voulez savoir qui l'a fait, vous devrez ajouter un peu de code, ce qui signifie que vous saurez la prochaine fois.
J'ai trouvé cette ressource en ligne. Cela pourrait vous être utile:
Comment savoir qui ou quoi a stoppé mon système
la source
last -x shutdown
Il y a plusieurs choses à vérifier:
Vérifier le résultat de la dernière commande -x
Exécutez cette commande * et comparez le résultat avec les exemples ci-dessous:
Exemples d'arrêt normal
Un arrêt normal et une mise sous tension ressemblent à ceci (notez que vous avez un événement d'arrêt puis un événement d'amorçage du système):
Dans certains cas, vous pouvez voir ceci (notez qu'il n'y a pas de ligne concernant l'arrêt, mais le système était au niveau d'exécution 0, ce qui correspond à "l'état d'arrêt"):
Exemples d'arrêt inattendus
Un arrêt inattendu suite à une panne d’alimentation ressemble à ceci (notez que vous avez un événement d’amorçage du système sans événement antérieur d’arrêt du système):
Examinez les journaux dans / var / log
Une commande bash pour filtrer les messages de journal les plus intéressants est la suivante:
Lorsqu'une mise hors tension ou une défaillance matérielle inattendue se produit, les systèmes de fichiers ne seront pas correctement démontés. Par conséquent, lors du prochain démarrage, vous obtiendrez des journaux du type suivant:
Lorsque le système s'éteint parce que l'utilisateur a appuyé sur le bouton d'alimentation, vous obtenez des journaux comme celui-ci:
Ce n'est que lorsque le système s'arrête de manière ordonnée que vous obtenez des journaux comme celui-ci:
Lorsque le système s'arrête en raison d'une surchauffe, vous obtenez des journaux comme celui-ci:
Si vous possédez un onduleur et exécutez un démon pour surveiller l’alimentation et l’arrêt, vous devez évidemment vérifier ses journaux (NUT enregistre sur / var / log / messages mais apcupsd enregistre sur / var / log / apcupsd *)
Remarques
*: Voici la description de
last
sa page de manuel:Nous avions l'habitude
head
de conserver les 10 derniers événements ettac
d'inverser l'ordre afin que nous ne soyons pas déroutés par le fait que les dernières impressions avaient été enregistrées du plus récent au moins récent.la source
tac
commandeQuelques fichiers de log possibles à explorer: (trouvé un système Ubuntu, mais j'espère qu'ils sont présents sur la plupart des systèmes Linux / Unix)
Encore une fois, ces fichiers journaux sont présents sur un système Ubuntu, les noms de fichiers peuvent donc être différents. La
tail
commande est votre ami.la source
Simplifiez l’
last
affichage des entrées d’arrêt du système, des modifications du niveau d’exécution et du filtrage surshutdown
etreboot
:la source
cat foo | grep bar
vsgrep bar foo
sorte de façon, il semble que le dernier est capable de se filtrer.Pas entièrement satisfaisant
J'avais un besoin similaire sur un Debian 7.8 et observe que, fondamentalement, il n'y a pas de message clair et explicite dans le journal, ce qui est un peu surprenant.
Grep
/var/log
indiquerait l'heure à laquelle la machine a été arrêtée, montrait les démons appropriés, etc., mais pas la raison initiale.Les autres solutions mentionnées (
last -x
) n’ont pas beaucoup aidé.En regardant comment ça marche
Lecture
/etc/acpi/powerbtn-acpi-support.sh
qui comprend:Notez qu'un texte explicite est donné en tant que paramètre de la
shutdown
commande. Je m'attendrais à ce que cette chaîne soit enregistrée automatiquement par le programme d'arrêt.Ajuster pour de meilleurs journaux
Quoi qu’il en soit, pour obtenir un message explicite, je mets le texte ci-dessous (en tant que root) dans un
/etc/acpi/powerbtn.sh
exécutable nouvellement créé avecchmod a+x /etc/acpi/powerbtn.sh
Le faire de cette façon entraînera probablement un changement plus durable que la modification
/etc/acpi/powerbtn-acpi-support.sh
. Cette dernière option perdrait probablement son effet sur la prochaine mise à jour du paquetacpi-support-base
.Notez que Ubuntu 14.04 le fait différemment (
/etc/acpi/powerbtn.sh
existe déjà avec un contenu différent duacpid
paquet). En outre, Debian 8 le fait probablement différemment. N'hésitez pas à proposer des variantes.Profit!
Et maintenant, lorsque vous appuyez sur le bouton d'alimentation, une ligne comme ci-dessous apparaît dans
/var/log/messages
,/var/log/syslog
et/var/log/user.log
:Voilà un message explicite dans le journal.
la source
acpi-support-base
et lesacpid
paquets. Je ne me suis pas testé. Pouvez-vous préciser quelle distribution et quelle version rapportent des avantages?J'ai juste une idée maladroite, mais peut-être que cela fonctionne pour vous: entrez la commande
last
et consultez les informations de connexion de tous les utilisateurs. ensuite, filtrez les utilisateurs avec l’autorisation requise pourhalt
cela qui avait été connecté à ce moment. puis consultez leur.bash_history
dossier pour voir s’ils se sont arrêtés ou non.la source
Dans mon cas, j'ai eu un problème de surchauffe et j'ai trouvé le journal dans / var / log / syslog par un message 'grep shut *' dans le dossier / var / log.
L'erreur enregistrée était la suivante:
la source
Il suffit de la noter sur ma machine virtuelle KVM (où je me demandais si un redémarrage d’hôte entraînait un arrêt complet des invités), j’ai trouvé ce dont j'avais besoin
/var/log/auth.log
(en plus de lelast -x shutdown
montrer de la même manière). Là, ces lignes sont apparues:last -x
affiche ces lignes, remarquez qu'elles sont imprimées dans l'ordre le plus récent-premier (c.-à-d. lisez la dernière ligne en premier, puis montez), mais en raison de la réinitialisation de l'horloge (23h56 avant le démarrage, 23h55 après) également évident dans les lignes précédentes, l'ordre semble un peu déroutant:Pour ma part, vérifier que les invités sont correctement fermés lorsque l'hôte est démarré, je pourrais aussi simplement me connecter à l'un des invités (ssh) et y rester lorsque j'amorcerai l'hôte en obtenant ces lignes dans le terminal:
la source
alias l'arrêt d'un script,
le script doit donner tous les paramètres, etc. à l'exécutable d'arrêt d'origine
MAIS: le script doit enregistrer ceux-ci
la source
last -x
)dans mon cas, c’était le logiciel d’ups qui arrêtait le serveur.
la source