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

3

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

Eu gostaria que o promt de login ou cabeçalho exibisse o endereço IP da máquina. Dessa forma, quando eu inicio, posso ver em qual IP eu vou estar. Nossa rede funciona usando um DHCP. Por isso, pode mudar entre o arranque.

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

O que surge como

Ubuntu 11.04 [hostname] tty[x]

Eu quero que surja como

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

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

    
por nelaaro 20.01.2012 / 13:30

3 respostas

2

O Getty não conhece os endereços IP da máquina. Mas essa pergunta já foi feita em serverfault . Aqui está a resposta aceita:

It's just a text file...you write to it the same way you'd send text to a file with any other shell script. Something like this would replace /etc/issue with just your ip address:

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

Obviously you can make this arbitrarily more complex, depending on what information you want in your /etc/issue file.

You can write to this file in your local equivalent of /etc/rc.d/rc.local (which typically executes after all the other startup scripts).

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

    
por 20.01.2012 / 13:38
5

Em CentOS 7 e Debian 8 (e talvez outros também), apenas anexe a seguinte linha a /etc/issue

My IP address: 

e isso será resolvido para 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: {eth0}
    
por 11.01.2017 / 14:45
3

Para o CentOS com um IP concedido por 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 problema "modelo" como este:

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

%INTERFACES%

Lembre-se de

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

O comando awk para obter o IP atual e substituí-los no arquivo /etc/issue.template deve ser portátil para as distribuições Linux modernas.

    
por 13.09.2014 / 19:52

Tags