Solución 1:
En CentOS 7 y Debian 8 (y tal vez otros también), simplemente agregue la siguiente línea a /etc/issue
My IP address: \4
y eso se resolverá en la dirección IPv4 de la máquina. Si tiene varias interfaces de red y desea elegir una específica, puede especificarla con
My IP address: \4{eth0}
Marque man getty
para obtener una lista de las secuencias de escape admitidas en su distribución.
Solución 2:
Es solo un archivo de texto... escribes en él de la misma manera que enviarías texto a un archivo con cualquier otro script de shell. Algo como esto reemplazaría /etc/issue con solo su dirección IP:
ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d: > /etc/issue
Obviamente, puede hacer esto arbitrariamente más complejo, dependiendo de la información que desee en su /etc/issue
archivo.
Puede escribir en este archivo en su equivalente local de /etc/rc.d/rc.local (que generalmente se ejecuta después de todos los demás scripts de inicio).
Solución 3:
Este script agregará/eliminará direcciones IP a/del /etc/issue
archivo según sea necesario:
#!/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 está utilizando una distribución basada en Debian, es mejor colocar el script en estas ubicaciones:
/etc/network/if-up.d/update-issue
/etc/network/if-post-down.d/update-issue
De esta manera, los scripts se ejecutan cada vez que una interfaz se activa o se desactiva. Colocándolo en /etc/rc.d/rc.local
tiene la desventaja de ser ejecutado solo una vez durante el arranque.
Solución 4:
puedes escribirlo una vez. desafortunadamente, no hay una secuencia de escape de getty para mostrar la dirección IP de eth0, pero hay una secuencia de escape que puede usar en /etc/issue para mostrar el nombre de host:\n
siempre puede configurar estáticamente la ip de la máquina en /etc/issue escribiéndola directamente en el archivo. tenga en cuenta que el archivo /etc/issue.net se usa para inicios de sesión remotos, por lo que es posible que desee editarlo también.
de todos modos, después de trabajar en la ventana de la terminal, perderá la pantalla inicial y la información de dirección IP/host con ella. La mejor manera es establecer el nombre de host en el indicador (la mayoría de las distribuciones de Linux lo hacen) usando \h o \H o nuevamente, configurando estáticamente la dirección IP que sabe que está configurada en el host en la variable PS1. Puede configurar la variable PS1 en /etc/profile en la mayoría de las distribuciones de Linux.
Solución 5:
Systemd hace que esto sea relativamente fácil. systemctl edit [email protected]
con contenido como:
[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'
Entonces systemctl daemon-reload && systemctl restart [email protected]