Solution 1 :
Sur CentOS 7 et Debian 8 (et peut-être d'autres aussi), ajoutez simplement la ligne suivante à /etc/issue
My IP address: \4
et cela résoudra l'adresse IPv4 de la machine. Si vous avez plusieurs interfaces réseau et que vous souhaitez en choisir une spécifique, vous pouvez la spécifier avec
My IP address: \4{eth0}
Vérifiez man getty
pour obtenir une liste des séquences d'échappement prises en charge sur votre distribution.
Solution 2 :
C'est juste un fichier texte ... vous y écrivez de la même manière que vous enverriez du texte dans un fichier avec n'importe quel autre script shell. Quelque chose comme ça remplacerait /etc/issue par juste votre adresse IP :
ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d: > /etc/issue
Évidemment, vous pouvez rendre cela arbitrairement plus complexe, en fonction des informations que vous souhaitez dans votre /etc/issue
fichier.
Vous pouvez écrire dans ce fichier dans votre équivalent local de /etc/rc.d/rc.local (qui s'exécute généralement après tous les autres scripts de démarrage).
Solution 3 :
Ce script ajoutera/supprimera des adresses IP vers/du /etc/issue
fichier au besoin :
#!/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
Si vous utilisez une distribution basée sur Debian, il est préférable de placer le script aux emplacements suivants :
/etc/network/if-up.d/update-issue
/etc/network/if-post-down.d/update-issue
De cette façon, les scripts sont exécutés à chaque fois qu'une interface apparaît ou s'arrête. Le placer en /etc/rc.d/rc.local
a l'inconvénient de n'être exécuté qu'une seule fois au démarrage.
Solution 4 :
vous pouvez l'écrire une fois. malheureusement, il n'y a pas de séquence d'échappement getty pour afficher l'adresse IP de eth0 mais il existe une séquence d'échappement que vous pouvez utiliser dans /etc/issue pour afficher le nom d'hôte :\n
vous pouvez toujours définir statiquement l'adresse IP de la machine dans /etc/issue en l'écrivant directement dans le fichier. attention, le fichier /etc/issue.net est utilisé pour les connexions à distance, vous pouvez donc également le modifier.
de toute façon, après avoir travaillé dans la fenêtre du terminal, vous perdrez l'écran initial et les informations d'adresse IP/hôte avec. le meilleur moyen est de définir le nom d'hôte dans l'invite (la plupart des distributions Linux le font) en utilisant \h ou \H ou encore, en définissant de manière statique l'adresse IP que vous savez être définie sur l'hôte dans la variable PS1, vous pouvez définir la variable PS1 dans /etc/profile sur la plupart des distributions Linux.
Solution 5 :
Systemd rend cela relativement facile. systemctl edit [email protected]
avec un contenu 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'
Alors systemctl daemon-reload && systemctl restart [email protected]