Fügen Sie eine Nachricht hinzu, die beim Herunterfahren von CentOS 6 und 7 angezeigt werden soll

Fügen Sie eine Nachricht hinzu, die beim Herunterfahren von CentOS 6 und 7 angezeigt werden soll

Beim Neustarten oder Herunterfahren wird Folgendes angezeigt:

[kbrandt@ny-kbrandt01: ~] sudo reboot
[sudo] password for kbrandt:

Broadcast message from [email protected]
    (/dev/pts/3) at 14:50 ...

The system is going down for reboot NOW!

Ich kann sehen, dass dieser bestimmte String Teil der Binärdatei ist:

[kbrandt@ny-kbrandt01: ~] strings /sbin/shutdown | grep NOW
The system is going down for power off NOW!
The system is going down for halt NOW!
The system is going down for maintenance NOW!
The system is going down for reboot NOW!

Aber weiß jemand, ob es eine Möglichkeit gibt, eine Erinnerungsnachricht hinzuzufügen, um den Host in unserem Überwachungssystem stumm zu schalten, ohne die Binärdatei zu ändern?

Antwort1

Asehr vorsichtigDas Lesen der shutdown(8)Manpage (also nicht die ersten paar Male, als ich nachgesehen und nichts gefunden habe) zeigt, dass in der Befehlszeile eine benutzerdefinierte Nachricht bereitgestellt werden kann.

Zum Beispiel:

# shutdown -r +15 "We're rebooting for unicorns. Silence monitoring please."
Shutdown scheduled for Tue 2014-11-25 10:17:53 EST, use 'shutdown -c' to cancel.
# 
Broadcast message from root@saurok (Tue 2014-11-25 10:02:53 EST):

We're rebooting for unicorns. Silence monitoring please.
The system is going down for reboot at Tue 2014-11-25 10:17:53 EST!

In diesem Sinne empfehle ich Ihnen, wenn Sie EL7 in Ihrer Umgebung haben, Ihre Herunterfahren 1 Minute im Voraus zu planen, wenn Sie möchten, dass diese Nachricht angezeigt wird, anstatt „jetzt“ herunterzufahren, da Benutzer meiner Erfahrung nach möglicherweise abgemeldet werden, bevor sie die Nachricht erhalten (weil systemd das System so verdammt schnell herunterfährt und neu startet).

Wenn Sie einen noch schnelleren Neustart wünschen, richten Sie vor dem Neustart kexec ein, um die langweiligen 1 bis 15 Minuten zu überspringen, in denen der Server seine Hardware selbst testet ...

Antwort2

Sie können einen Dienst erstellen, der an die Wand schreibt. Der Dienst wird gestartet und erstellt die Datei „lock“. Anschließend erhalten Sie beim Neustart oder Herunterfahren die folgende Meldung (der Vorgang ist bei CentOS 7 wahrscheinlich anders, da dort systemd verwendet wird):

Skript (könnte wahrscheinlich besser sein):

[root@ny-kbrandt01 init.d]# cat reminder
#!/bin/bash
# chkconfig: 2345 99 01
# description: My test service

if [[ $1 == "start" ]]; then
        touch /var/lock/subsys/reminder
fi

if [[ $1 == "stop" || $1 == "halt" ]]; then
        wall "Please silence in bosun so Kyle doesn't turn into more of a nutbag"
fi

Und fügen Sie es unbedingt mit chkconfig hinzu:

[root@ny-kbrandt01 init.d]# chkconfig --add reminder

Das Problem besteht darin, dass diese Version mit der automatischen Stummschaltung nicht so gut skaliert, da wir dies bei nicht vom Administrator initiierten Neustarts nicht tun möchten.

Antwort3

man shutdown

NAME
   shutdown - bring the system down

SYNOPSIS
   shutdown [OPTION]...  TIME [MESSAGE]

verwandte Informationen