modifique o prompt de login ou cabeçalho (/etc/issue) para exibir o endereço IP da máquina

modifique o prompt de login ou cabeçalho (/etc/issue) para exibir o endereço IP da máquina

Eu trabalho com muitas máquinas virtuais. Para testes e configuração de pré-produção.

Gostaria que o prompt ou cabeçalho de login exibisse o endereço IP da máquina. Dessa forma, quando eu iniciar, posso ver em qual IP estarei ssh. Nossa rede funciona usando um DHCP. Portanto, pode mudar entre a inicialização.

$ cat /etc/issue
Ubuntu 11.04\n\l

O que surge como

Ubuntu 11.04 [nome do host] tty[x]

Eu quero que isso apareça como

Ubuntu 11.04 [nome do host] tty[x] ip xxx.xxx.xxx.xxx

Eu estava pensando em escrever um script init/upstart. Existe uma maneira melhor.

Responder1

Getty não conhece os endereços IP da máquina. Mas esta pergunta já foi feita emfalha no servidor. Aqui está a resposta aceita:

É apenas um arquivo de texto... você escreve nele da mesma forma que enviaria texto para um arquivo com qualquer outro script de shell. Algo assim substituiria /etc/issue apenas pelo seu endereço IP:

ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d: > /etc/issue

Obviamente você pode tornar isso arbitrariamente mais complexo, dependendo das informações que deseja em seu /etc/issuearquivo.

Você pode gravar neste arquivo em seu equivalente local /etc/rc.d/rc.local(que normalmente é executado após todos os outros scripts de inicialização).

Além disso, lembre-se de que o arquivo /etc/issue.neté usado para logins remotos, portanto, você também pode editá-lo.

Responder2

SobreCentOS 7eDebian 8(e talvez outros também), basta anexar a seguinte linha a/etc/issue

My IP address: \4

e isso resolverá o endereço IPv4 da máquina. Se você tiver várias interfaces de rede e quiser escolher uma específica, poderá especificá-la com

My IP address: \4{eth0}

Responder3

Para CentOS 5 com um IP alugado de DHCP, você pode usar 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
}

com um "modelo" de problema como este:

$ cat /etc/issue.template
CentOS release 6.5 (Final)
Kernel \r on an \m

%INTERFACES%

Lembrar de

chmod +x /etc/dhcp/dhclient.d/issue.sh

O awkcomando para obter o IP atual e substituí-lo no /etc/issue.templatearquivo deve ser portátil para distribuições Linux modernas.

informação relacionada