3

Я работаю с большим количеством виртуальных машин. Для тестирования и подготовки производства.

Я хотел бы, чтобы на экране входа в систему отображался IP-адрес компьютера. Таким образом, когда я запускаю его, я вижу, по какому IP я буду ssh. Наша сеть работает с использованием DHCP. Так что это может меняться между загрузкой.

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

Который приходит как

Ubuntu 11.04 [имя хоста] tty [x]

Я хочу, чтобы это прозвучало как

Ubuntu 11.04 [имя хоста] tty [x] ip xxx.xxx.xxx.xxx

Я думал о написании сценария init / upstart. Есть ли способ лучше.

3 ответа3

5

В CentOS 7 и Debian 8 (и, может быть, также и в других) просто добавьте следующую строку в /etc/issue

My IP address: \4

и это будет преобразовано в IPv4-адрес компьютера. Если у вас есть несколько сетевых интерфейсов, и вы хотите выбрать один конкретный, вы можете указать его с помощью

My IP address: \4{eth0}
3

Для CentOS с арендованным IP-адресом DHCP вы можете использовать этот скрипт:

$ 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
}

с вопросом "шаблон", как это:

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

%INTERFACES%

Запомни

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

Команда awk для получения текущего IP- адреса и его замены в файле /etc/issue.template должна переноситься на современные дистрибутивы Linux.

2

Getty не знает IP-адреса машины. Но этот вопрос уже задавался при сбое сервера. Вот принятый ответ:

Это просто текстовый файл ... вы пишете в него так же, как отправляете текст в файл любым другим сценарием оболочки. Нечто подобное заменит /etc /issue только вашим IP-адресом:

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

Очевидно, что вы можете сделать это как угодно сложнее, в зависимости от того, какую информацию вы хотите получить в /etc/issue .

Вы можете записать в этот файл ваш локальный эквивалент /etc/rc.d/rc.local (который обычно выполняется после всех других сценариев запуска).

Также имейте в виду , что файл /etc/issue.net используется для удаленных входов в систему, так что вы можете также отредактировать его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .