Ich habe ein paar virtuelle Linux-Maschinen mit überbrückten Schnittstellen und möchte, dass die IP-Adresse der Maschine nach dem Start der Maschine angezeigt wird (in der Anmeldung, wo normalerweise die Version und der Kernel angezeigt werden).
Soweit ich weiß, stammt die Nachricht aus / etc / issues, aber ich bin nicht sicher, wie und wann ich darauf schreiben soll.
linux
centos
virtual-machines
Bruno Lopes
quelle
quelle
Antworten:
Es ist nur eine Textdatei ... Sie schreiben darauf genauso, wie Sie Text mit einem anderen Shell-Skript an eine Datei senden würden. So etwas würde / etc / issue nur durch Ihre IP-Adresse ersetzen:
Natürlich können Sie dies beliebig komplexer gestalten, je nachdem, welche Informationen in Ihrer
/etc/issue
Datei enthalten sein sollen.Sie können in diese Datei in Ihrer lokalen Entsprechung von /etc/rc.d/rc.local schreiben (die normalerweise nach allen anderen Startskripten ausgeführt wird).
quelle
ip address show eth0 | awk '/inet / {print $2}' | cut -d/ -f1
ip
das Werkzeug ist, das Sie für diese Art von Dingen verwenden sollten.ifconfig
ist technisch nur aus Kompatibilitätsgründen.Fügen Sie unter CentOS 7 und Debian 8 (und vielleicht auch anderen) einfach die folgende Zeile an
/etc/issue
und das wird auf die IPv4-Adresse des Computers aufgelöst. Wenn Sie über mehrere Netzwerkschnittstellen verfügen und eine bestimmte auswählen möchten, können Sie diese mit angeben
Suchen Sie
man getty
in Ihrer Distribution nach einer Liste der unterstützten Escape-Sequenzen.quelle
Dieses Skript fügt der
/etc/issue
Datei nach Bedarf IP-Adressen hinzu bzw. entfernt diese aus der Datei:Wenn Sie eine Debian-basierte Distribution verwenden, platzieren Sie das Skript am besten an folgenden Stellen:
Auf diese Weise werden die Skripte jedes Mal ausgeführt, wenn eine Schnittstelle auf- oder abfällt. Das Einlegen
/etc/rc.d/rc.local
hat den Nachteil, dass es beim Booten nur einmal ausgeführt wird.quelle
/sbin/if{up,down}-local
. (Wenn es existiert, wird es von aufgerufen/etc/sysconfig/network-scripts/ip{up,down}-post
.)--all-ip-addresses
gibt auch "öffentliche" IP-Adressen aus. Vielleicht macht so etwas wie "IP-Adressen aller externen Schnittstellen dieses Hosts:" mehr Sinn.du kannst es einmal schreiben. Leider gibt es keine getty-Escape-Sequenz, um die IP-Adresse von eth0 anzuzeigen, aber es gibt eine Escape-Sequenz, die Sie in / etc / issue verwenden können, um den Hostnamen anzuzeigen: \ n
Sie können die IP des Computers jederzeit statisch in / etc / issue festlegen, indem Sie sie direkt in die Datei schreiben. Beachten Sie, dass die Datei /etc/issue.net für Remoteanmeldungen verwendet wird, sodass Sie diese möglicherweise auch bearbeiten möchten.
Nach der Arbeit im Terminalfenster verlieren Sie jedoch den Startbildschirm und die damit verbundenen IP- / Host-Adressinformationen. Der beste Weg ist, den Hostnamen in der Eingabeaufforderung (die meisten Linux-Distributionen tun dies) unter Verwendung von \ h oder \ H oder erneut festzulegen. Statische Festlegung der IP-Adresse, die Sie kennen, auf dem Host in der PS1-Variablen. Sie können die PS1-Variable in / etc / festlegen. Profil auf den meisten Linux-Distributionen.
quelle
Vielen Dank an @larsks für die ersten Schritte. Ich stellte fest, dass ich Probleme hatte, das Skript fertigzustellen, bevor es benötigt wurde, sodass meine Ausgabedatei immer leer war. Also habe ich eine Pause von 1 Sekunde eingefügt und eine Schleife gemacht. Ich bin kein wirklicher Bash-Scripter. Wenn es also einen besseren Weg gibt, lassen Sie es mich bitte wissen. Ich habe ein hinzugefügt
COUNT
, um sicherzustellen, dass es nicht für immer wiederholt wird.Ich habe dieses Skript eingefügt
/etc/network/if-up.d/
.quelle
Systemd macht dies relativ einfach.
systemctl edit getty@
mit Inhalten wie:Dann
systemctl daemon-reload && systemctl restart getty@tty1
quelle
Für jeden, der hier landet und Ubuntu 19.04 verwendet, habe ich die Antwort von @ powpow übernommen.
Ich habe die Datei erstellt:
/etc/network/if-up.d/update-issue
mit folgendem Inhalt:Ich habe die Datei dann als ausführbar markiert:
chmod 0755 /etc/network/if-up.d/update-issue
Funktioniert super!
quelle