ubuntu/debian — как выводить список IP адресов при заходе через SSH или загрузке системы

При запуске сервера он получает временный IP адрес. Узнать какой довольно сложно, можно посмотреть в логах DHCP сервера, например, но проще всего заставить сервер показать список наличных IP адресов.

При загрузке системы выводится текущее значение файла /etc/issue; при входе через SSH — вызывается скрипт motd. Поэтому методы для показа текущего IP адреса должны быть различны.

Как получить список IP адресов

Получить список текущих IP адресов можно разными способами.

  1. ifconfig |grep «inet addr»
  2. установить пакет landscape-common и использовать его вывод (больше чем хотелось, но ничего страшного).

Вывод в терминале сервера

Сохраняем текущий /etc/issue

cp /etc/issue /etc/issue-original

Создаём скрипт /etc/network/if-up.d/show-ip-address :

#!/bin/sh
if [ "$METHOD" = loopback ]; then
    exit 0
fi

# Only run from ifup.
if [ "$MODE" != start ]; then
    exit 0
fi

cp /etc/issue-original /etc/issue

/usr/share/landscape/landscape-sysinfo.wrapper >> /etc/issue
echo "" >> /etc/issue

копируем его в /etc/network/if-post-down.d/show-ip-address

chmod 755 /etc/network/if-up.d/show-ip-address
cp /etc/network/if-up.d/show-ip-address  /etc/network/if-post-down.d/show-ip-address

Теперь при изменении конфигурации сети получим текущее состояние.

Вывод после захода через SSH

Это ещё проще. Добавим к списку, выводящемуся из motd, то что нас интересует.

ln -s /usr/share/landscape/landscape-sysinfo.wrapper  /etc/update-motd.d/50-landscape

При установке landscape-common в Ubuntu он сам добавляет скрипт /etc/update-motd.d/50-landscape-sysinfo , поэтому нет смысла самостоятельно это делать. Но проверить стоит.

Источники

Modify the SSH welcome message to include system IP address

Show IP address of VM as console pre-login message

Leave a Reply