Lösung 1:
Unter CentOS 7 und Debian 8 (und vielleicht auch andere), hängen Sie einfach die folgende Zeile an /etc/issue
an
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
angebenMy IP address: \4{eth0}
Kreuzen Sie man getty
an für eine Liste der von Ihrer Distribution unterstützten Escape-Sequenzen.
Lösung 2:
Es ist nur eine Textdatei ... Sie schreiben darin genauso, 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 Ihrem /etc/issue
haben möchten Datei.
Sie können in diese Datei in Ihrem lokalen Äquivalent von /etc/rc.d/rc.local schreiben (das normalerweise nach allen anderen Startskripten ausgeführt wird).
Lösung 3:
Dieses Skript fügt IP-Adressen zu/von /etc/issue
hinzu/entfernt sie Datei nach Bedarf:
#!/bin/sh
PREFIX="Local IP addresses:"
IPADDRS=$(hostname -I | tr " " "\n" | grep -v "^$" | sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tr "\n" " ")
perl -i -p -0777 -e "s/^$PREFIX[^\n]*\n\n//m; s/$/\n$PREFIX $IPADDRS\n/ if length('$IPADDRS')>6" /etc/issue
Wenn Sie eine Debian-basierte Distribution verwenden, platzieren Sie das Skript am besten an diesen Orten:
/etc/network/if-up.d/update-issue
/etc/network/if-post-down.d/update-issue
Auf diese Weise werden die Skripte jedes Mal ausgeführt, wenn eine Schnittstelle hochgefahren oder heruntergefahren wird. Platzieren Sie es in /etc/rc.d/rc.local
hat den Nachteil, dass es nur einmal während des Bootvorgangs ausgeführt wird.
Lösung 4:
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 der Maschine immer statisch in /etc/issue setzen, indem Sie sie direkt in die Datei schreiben. Beachten Sie, dass die Datei /etc/issue.net für entfernte Anmeldungen verwendet wird, also sollten Sie auch diese bearbeiten.
Wie auch immer, nachdem Sie im Terminalfenster gearbeitet haben, verlieren Sie den Startbildschirm und die IP-/Host-Adressinformationen damit. Der beste Weg ist, den Hostnamen in der Eingabeaufforderung festzulegen (die meisten Linux-Distributionen tun dies) mit \h oder \H oder erneut, indem Sie die IP-Adresse statisch festlegen, von der Sie wissen, dass sie auf dem Host in der PS1-Variablen festgelegt ist. Sie können die PS1-Variable in /etc/profile festlegen auf den meisten Linux-Distributionen.
Lösung 5:
Systemd macht dies relativ einfach. systemctl edit [email protected]
mit Inhalten wie:
[Service]
ExecStartPre=-/bin/bash -c '[ ! -f /etc/.issue.orig ] && cp /etc/issue /etc/.issue.orig; int=`ls /sys/class/net|grep enp|head -1`; sed -r "s/\\\\\\n/[\\\\\\4\{$$int\}]/" < /etc/.issue.orig > /etc/issue'
Dann systemctl daemon-reload && systemctl restart [email protected]