![Ändern Sie die Anmeldeaufforderung oder den Header (/etc/issue), um die IP-Adresse des Computers anzuzeigen.](https://rvso.com/image/1302261/%C3%84ndern%20Sie%20die%20Anmeldeaufforderung%20oder%20den%20Header%20(%2Fetc%2Fissue)%2C%20um%20die%20IP-Adresse%20des%20Computers%20anzuzeigen..png)
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/issue
Datei 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.net
fü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 awk
Befehl zum Abrufen der aktuellen IP und zum Ersetzen in der /etc/issue.template
Datei sollte auf moderne Linux-Distributionen portierbar sein.