Ändern Sie die Anmeldeaufforderung oder den Header (/etc/issue), um die IP-Adresse des Computers anzuzeigen.

Ändern Sie die Anmeldeaufforderung oder den Header (/etc/issue), um die IP-Adresse des Computers anzuzeigen.

Ich arbeite mit vielen virtuellen Maschinen. Zum Testen und für die Einrichtung vor der Produktion.

Ich möchte, dass in der Anmeldeaufforderung oder im Header die IP-Adresse des Computers angezeigt wird. Auf diese Weise kann ich beim Start sehen, mit welcher IP ich per SSH verbunden werde. Unser Netzwerk verwendet DHCP. Es kann also zwischen den Startvorgängen geändert werden.

$ cat /etc/issue
Ubuntu 11.04 \n \l

Was sich ergibt als

Ubuntu 11.04 [Hostname] tty[x]

Ich möchte, dass es so erscheint wie

Ubuntu 11.04 [Hostname] tty[x] IP xxx.xxx.xxx.xxx

Ich habe darüber nachgedacht, ein Init-/Upstart-Skript zu schreiben. Gibt es einen besseren Weg?

Antwort1

Getty kennt die IP-Adressen der Rechner nicht. Aber diese Frage wurde bereits gestellt beiServerfehler. Hier ist die akzeptierte Antwort:

Es ist nur eine Textdatei. Sie schreiben darin auf dieselbe Weise, wie Sie mit jedem anderen Shell-Skript Text an eine Datei senden würden. So etwas würde /etc/issue nur durch Ihre IP-Adresse ersetzen:

ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d: > /etc/issue

Natürlich können Sie dies beliebig komplexer gestalten, je nachdem, welche Informationen Sie in Ihrer /etc/issueDatei haben möchten.

Sie können in diese Datei in Ihrem lokalen Äquivalent schreiben /etc/rc.d/rc.local(das normalerweise nach allen anderen Startskripten ausgeführt wird).

Beachten Sie auch, dass die Datei /etc/issue.netfür Remote-Anmeldungen verwendet wird. Sie sollten diese daher möglicherweise ebenfalls bearbeiten.

Antwort2

AnCentOS 7UndDebian 8(und vielleicht auch andere), fügen Sie einfach die folgende Zeile an/etc/issue

My IP address: \4

und das wird in die IPv4-Adresse des Computers aufgelöst. Wenn Sie mehrere Netzwerkschnittstellen haben und eine bestimmte auswählen möchten, können Sie diese mit angeben

My IP address: \4{eth0}

Antwort3

Für CentOS 5 mit einer per DHCP geleasten IP können Sie dieses Skript verwenden:

$ cat /etc/dhcp/dhclient.d/issue.sh
#!/bin/bash

update_issue() {
    awk -v \
        r="$(ip -o addr | awk '/inet [1-9]+/ { print $2 " " $4 }')" \
        '{ gsub(/%INTERFACES%/,r) }1' \
        /etc/issue.template > /etc/issue
}

issue_config() {
    update_issue
}

issue_restore() {
    update_issue
}

mit einer Problem-„Vorlage“ wie dieser:

$ cat /etc/issue.template
CentOS release 6.5 (Final)
Kernel \r on an \m

%INTERFACES%

Erinnere dich an

chmod +x /etc/dhcp/dhclient.d/issue.sh

Der awkBefehl zum Abrufen der aktuellen IP und zum Ersetzen in der /etc/issue.templateDatei sollte auf moderne Linux-Distributionen portierbar sein.

verwandte Informationen