Wie kann ich die IP-Adresse von eth0 auf dem Anmeldebildschirm von Precise Server anzeigen?

23

Der Server, den ich verwalte, hat ungünstigerweise eine dynamische IP-Adresse, die von DHCP zugewiesen wird. Das bequeme Gegengewicht ist jedoch, dass es ungefähr einen halben Meter von meinem Platz entfernt aufgestellt ist. Ich weiß, wie man / etc / issue bearbeitet, um andere Werte anzuzeigen, bevor die Anmeldeaufforderung auf dem Display angezeigt wird, aber ich möchte wissen, ob es für / etc / issue möglich ist, die aktuelle IP-Adresse von eth0 anzuzeigen (neu ausgewertet) beim booten) damit ich es sehen kann und dann ssh rein ohne mich einloggen zu müssen um ifconfig auszuführen.

ssonicblue
quelle
Kann conky im Anmeldebildschirm verwendet werden? Wenn ja, könnten Sie alle möglichen Informationen zur Hand haben.
Dibs

Antworten:

27

Ab Debian 8 / jessie können Sie die Verwendung \4und \6Zeichen für die Ausgabe der IPv4- und IPv6 - Adressen entkommen. Also die /etc/issueDatei:

Debian GNU/Linux 8 \n \l

eth0: \4{eth0}

Würde an der Anmeldekonsole etwa Folgendes ausgeben:

Debian GNU/Linux 8 myserver tty1

eth0: 192.168.1.100
myserver login:

Ich stelle mir vor, Ubuntu würde ähnliche Funktionen bereitstellen (zumindest in neueren Releases)

Jerrykan
quelle
Dies funktionierte für mich in Ubuntu 16.04 LTS, die als korrekt markierte Antwort war wahrscheinlich kein Problem mit dem grep-Kommentar, auf jeden Fall danke für das Posten.
Tracker1
Es funktioniert immer noch unter Debian 9 :)
borekon
12

/etc/issueist leider ein Klartext, es hat einige Optionen, die Sie hinzufügen können (siehe man agetty), aber nicht die IP-Adresse von eth0.

Wenn Sie dies eingeben /etc/rc.local:

IP=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
echo "eth0 IP: $IP" > /etc/issue

Dann sehen Sie so etwas:

eth0: 192.168.0.2
myServer login:
Alex R
quelle
3
Bitte beachten Sie, dass der Inhalt von / etc / issue von allen Benutzern überschrieben wird. Sie können Schritte hinzufügen, um die vorherigen "eth *" - Zeilen auszublenden und sie dann anzufügen.
Rebs
1

Aufbauend auf Alex 'Antwort und Rebs' Kommentar habe ich folgendes für meine /etc/rc.localAkte (nur relevante Zeilen):

PRE_MSG="Ubuntu 14.04.3 LTS" # this is from the original /etc/issue

IP=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')

IP_MSG="Server IP Address:"

printf "%s %s %s\n\n%s %s\n\n" "$PRE_MSG" '\n' '\l' "$IP_MSG" "$IP" > "/etc/issue"

Der printfBefehl macht die Magie. Leider wurde beim Einfügen von '\n'und '\l'in die Formatzeichenfolge die erste durch das neue Zeilenzeichen ersetzt, und die /etc/issueDatei war fehlerhaft.

So lange Rede und Antwort, diese 4 Zeilen behalten die ursprünglichen Informationen in Form einer /etc/issueDatei und fügen die Server IP Address:Nachricht hinzu.

Und wie Rebs bereits sagte, denken Sie daran, dass dieses Skript bei jedem Neustart des Servers die /etc/issueDatei überschreibt. Probieren Sie es also in einem anderen Skript und in einer anderen Datei aus und übertragen Sie die Änderungen, sobald sie funktionieren.

Viel Glück und viel Spaß beim Bashing :)

Nurchi
quelle
0

Mit systemd kannst du systemctl edit getty@etwas machen 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 getty@tty1

h0tw1r3
quelle
0

Für Ubuntu 19.04 habe ich folgende Schritte ausgeführt:

Ich habe die Datei erstellt: /etc/network/if-up.d/update-issuemit folgendem Inhalt:

#!/bin/sh
PREFIX="Ubuntu 19.04 - dev"
IPADDRS=$(hostname -I | tr " " "\n" | grep -v "^$" | sort -t . -k 1,1n | head -1 | tr "\n" " ")
echo "$PREFIX\n\nIP: $IPADDRS\n" > /etc/issue

Ich habe die Datei dann als ausführbar markiert: chmod 0755 /etc/network/if-up.d/update-issue

Funktioniert super!

Steve McDonald
quelle
0

Aufbauend auf den Antworten von Nurchi, Alex und Steve und dem Kommentar von Reb,

Das Folgende überprüft die alte IP-Adresse und fügt alle nicht lokalen (127.) IP-Adressen hinzu. Mein Server ist eine VM und hat kein eth0. Testen unter Ubuntu 18.04

Platz in /etc/network/if-up.d/update-issue

#!/bin/sh
MSG=$(cat /etc/issue | grep -v IP)
IP=$(/sbin/ifconfig | grep 'inet' | grep -v '127' | cut -d: -f2 | awk '{ print $2 }')
printf "%s\n%s\n\n" "$MSG" "IP: $IP" > /etc/issue

Dann chmod 0755 /etc/network/if-up.d/update-issue

Der einzige Unterschied zwischen meiner Antwort und der von Steve ist das Hinzufügen der grep-Zeilen, um die IP-Zeile zu entfernen, die Nachricht zu erfassen und sie zusammen mit der neuen / aktualisierten IP zu lesen

agrath
quelle