Trabajo con muchas máquinas virtuales. Para pruebas y configuración de preproducción.
Me gustaría que el mensaje o encabezado de inicio de sesión muestre la dirección IP de la máquina. De esa manera, cuando lo inicio puedo ver en qué IP estaré conectado. Nuestra red funciona utiliza un DHCP. Entonces puede cambiar entre el arranque.
$ gato /etc/issue
Ubuntu 11.04 \n \l
que surge como
Ubuntu 11.04 [nombre de host] tty[x]
quiero que aparezca como
Ubuntu 11.04 [nombre de host] tty[x] ip xxx.xxx.xxx.xxx
Estaba pensando en escribir un script de inicio/advenedizo. ¿Existe una mejor manera?
Respuesta1
Getty no conoce las direcciones IP de la máquina. Pero esta pregunta ya se hizo enfallo del servidor. Aquí está la respuesta aceptada:
Es sólo un archivo de texto... se escribe en él de la misma manera que enviaría texto a un archivo con cualquier otro script de shell. Algo como esto reemplazaría /etc/issue solo con 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
/etc/rc.d/rc.local
(que normalmente se ejecuta después de todos los demás scripts de inicio).
Además, tenga en cuenta que el archivo /etc/issue.net
se utiliza para inicios de sesión remotos, por lo que es posible que desee editarlo también.
Respuesta2
EnCentOS 7yDebian 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}
Respuesta3
Para CentOS 5 con una IP alquilada por DHCP, puede utilizar este script:
$ cat /etc/dhcp/dhclient.d/issue.sh
#!/bin/bash
update_issue() {
awk -v \
r="$(ip -o addr | awk '/inet [1-9]+/ { print $2 " " $4 }')" \
'{ gsub(/%INTERFACES%/,r) }1' \
/etc/issue.template > /etc/issue
}
issue_config() {
update_issue
}
issue_restore() {
update_issue
}
con una "plantilla" de problema como esta:
$ cat /etc/issue.template
CentOS release 6.5 (Final)
Kernel \r on an \m
%INTERFACES%
Recuerda
chmod +x /etc/dhcp/dhclient.d/issue.sh
El awk
comando para obtener la IP actual y reemplazarla en el /etc/issue.template
archivo debería ser portátil para las distribuciones modernas de Linux.