Як я можу відобразити IP-адресу eth0 на екрані входу на Precision Server?


23

Сервер, яким я адмініструю, досить незручно, має динамічну IP-адресу, призначену DHCP. Зручна рівновага, однак, полягає в тому, що воно буває встановлено приблизно в двох футах від місця, де я сиджу. Я знаю, як редагувати / etc / issue, щоб відображати різні значення до того, як запит для входу буде доставлений на дисплей, але я хотів би знати, чи можливо для / etc / issue відобразити поточну IP-адресу eth0 (переоцінено під час завантаження), щоб я міг його побачити, а потім ввімкнути скриньку без необхідності входу в систему, щоб запустити ifconfig.


Чи можна використовувати конкі на екрані входу? Якщо так, ви можете зробити всіляку інформацію зручною.
занурюється

Відповіді:


27

Станом на Debian 8 / jessie ви можете використовувати символи \4і \6escape для виведення адрес IPv4 та IPv6. Отже, /etc/issueфайл:

Debian GNU/Linux 8 \n \l

eth0: \4{eth0}

Буде виведено щось подібне на консолі входу:

Debian GNU/Linux 8 myserver tty1

eth0: 192.168.1.100
myserver login:

Я думаю, Ubuntu забезпечив би подібний функціонал (принаймні, у нових версіях)


Це працювало для мене в Ubuntu 16.04 LTS, відповідь, позначена як правильна, не була, ймовірно, проблемою з коментарем grep, в будь-якому випадку, дякую за повідомлення про це.
Tracker1

Він все ще працює на Debian 9 :)
borekon

12

/etc/issueна жаль, це звичайний текст, він має деякі параметри, які ви можете додати до нього (див. man agetty), але не IP-адресу eth0.

Якщо ви помістите це /etc/rc.local:

IP=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
echo "eth0 IP: $IP" > /etc/issue

Тоді ви побачите щось подібне:

eth0: 192.168.0.2
myServer login:

3
Будь ласка, зверніть увагу на те, хто це працює, це замінить вміст / etc / issue. Ви можете додати кроки, щоб вилучити попередні рядки "eth *", а потім додати їх.
Ребс

1

Спираючись на відповідь Алекса та коментар Ребса, це те, що я маю для свого /etc/rc.localфайлу (лише відповідні рядки):

PRE_MSG="Ubuntu 14.04.3 LTS" # this is from the original /etc/issue

IP=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')

IP_MSG="Server IP Address:"

printf "%s %s %s\n\n%s %s\n\n" "$PRE_MSG" '\n' '\l' "$IP_MSG" "$IP" > "/etc/issue"

printfКоманда робить магію. На жаль, введення рядка формату '\n'і '\l'всередині нього в кінцевому підсумку замінило перше новим символом рядка, і /etc/issueфайл був зіпсований.

Якщо коротко розповісти, ці 4 рядки зберігають оригінальну інформацію, яку відображає /etc/issueфайл, і додають Server IP Address:повідомлення.

І як сказав Ребс, майте на увазі, що кожного разу при перезавантаженні сервера цей скрипт буде заміняти /etc/issueфайл, тому, можливо, спробуйте його в іншому сценарії та в іншому файлі, і як тільки він працює, перенесіть зміни на ...

Удачі та щасливого BASHing :)


0

З системою ви можете зробити systemctl edit getty@щось на кшталт:

[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'

Потім systemctl daemon-reload && systemctl restart getty@tty1


0

Для Ubuntu 19.04 я дотримувався наступних кроків:

Я створив файл /etc/network/if-up.d/update-issueіз таким вмістом:

#!/bin/sh
PREFIX="Ubuntu 19.04 - dev"
IPADDRS=$(hostname -I | tr " " "\n" | grep -v "^$" | sort -t . -k 1,1n | head -1 | tr "\n" " ")
echo "$PREFIX\n\nIP: $IPADDRS\n" > /etc/issue

Потім я позначив файл як виконуваний: chmod 0755 /etc/network/if-up.d/update-issue

Чудово працює!


0

Спираючись на відповіді Нурчі, Алекса та Стіва та коментар Реба,

Далі буде вилучено старий IP-адресу та додано до будь-яких не локальних (127.) IP-адрес. Мій сервер - це VM і не має eth0. Тестування на Ubuntu 18.04

Місце в /etc/network/if-up.d/update-issue

#!/bin/sh
MSG=$(cat /etc/issue | grep -v IP)
IP=$(/sbin/ifconfig | grep 'inet' | grep -v '127' | cut -d: -f2 | awk '{ print $2 }')
printf "%s\n%s\n\n" "$MSG" "IP: $IP" > /etc/issue

Потім chmod 0755 /etc/network/if-up.d/update-issue

Єдина відмінність моєї відповіді від Стіва - додавання греп-ліній для видалення лінії IP, захоплення повідомлення та перечитання разом із новим / оновленим IP

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.