27 votes

Comment puis-je afficher l'adresse IP de ma machine sur un écran de connexion ATS ?

Le serveur que j'administre a une adresse IP dynamique attribuée par DHCP, ce qui n'est pas pratique. Lorsque je veux y accéder par SSH, je dois d'abord me connecter à la main et utiliser la fonction ifconfig pour trouver son adresse IP actuelle. Heureusement, il vit à environ deux pieds de l'endroit où je suis assis.

Je sais comment éditer /etc/issue pour afficher différentes valeurs avant que l'invite de connexion ne soit affichée à l'écran, mais j'aimerais savoir s'il est possible que /etc/issue affiche l'adresse IP actuelle d'eth0 (réévaluée au démarrage) afin que je puisse la voir et me connecter en ssh sans avoir à me connecter pour lancer ifconfig.

36voto

jerrykan Points 476

À partir de Debian 8/jessie, vous pouvez utiliser l'option \4 y \6 les caractères d'échappement pour éditer les adresses IPv4 et IPv6. Ainsi, les caractères /etc/issue fichier :

Debian GNU/Linux 8 \n \l

eth0: \4{eth0}

La console de connexion afficherait quelque chose comme ce qui suit :

Debian GNU/Linux 8 myserver tty1

eth0: 192.168.1.100
myserver login:

J'imagine qu'Ubuntu propose une fonctionnalité similaire (au moins dans les versions les plus récentes).

13voto

Alex R Points 929

/etc/issue est malheureusement un texte brut, il dispose de quelques options que vous pouvez lui ajouter (voir man agetty ) mais pas l'adresse IP de eth0.

Si vous mettez ceci dans /etc/rc.local :

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

Vous verrez alors quelque chose comme ceci :

eth0: 192.168.0.2
myServer login:

1voto

Juicy Scripter Points 165

Avec systemd, vous pouvez faire systemctl edit getty@ avec quelque chose comme :

[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'

Dans ce cas systemctl daemon-reload && systemctl restart getty@tty1

1voto

Steve McDonald Points 21

Pour Ubuntu 19.04, j'ai suivi les étapes suivantes :

J'ai créé le fichier : /etc/network/if-up.d/update-issue avec le contenu suivant :

#!/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

J'ai ensuite marqué le fichier comme exécutable : chmod 0755 /etc/network/if-up.d/update-issue

Fonctionne très bien !

1voto

agrath Points 111

Pour compléter les réponses de Nurchi, Alex et Steve et le commentaire de Reb,

La procédure suivante permet de récupérer l'ancienne adresse IP et d'ajouter les adresses IP non locales (127.). Mon serveur est une VM et n'a pas d'eth0. Test sur Ubuntu 18.04

Place dans /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

Dans ce cas chmod 0755 /etc/network/if-up.d/update-issue

La seule différence entre ma réponse et celle de Steve est l'ajout des lignes grep pour supprimer la ligne IP, capturer le message et le lire avec l'IP nouvelle/mise à jour.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X