GNU/Linux >> Znalost Linux >  >> Linux

Jak nastavit /etc/issues, aby zobrazoval IP adresu pro eth0

Řešení 1:

V systému CentOS 7 a Debian 8 (a možná i další), stačí připojit následující řádek k /etc/issue

My IP address: \4

a to se přenese na adresu IPv4 stroje. Máte-li více síťových rozhraní a chcete vybrat jedno konkrétní, můžete jej určit pomocí

My IP address: \4{eth0}

Zkontrolujte man getty pro seznam podporovaných escape sekvencí ve vaší distribuci.

Řešení 2:

Je to jen textový soubor... píšete do něj stejným způsobem, jako byste posílali text do souboru s jakýmkoli jiným shellovým skriptem. Něco takového by nahradilo /etc/issue pouze vaší IP adresou:

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

Samozřejmě to můžete udělat libovolně složitější v závislosti na tom, jaké informace chcete ve svém /etc/issue soubor.

Do tohoto souboru můžete zapisovat ve vašem místním ekvivalentu /etc/rc.d/rc.local (který se obvykle spustí po všech ostatních spouštěcích skriptech).

Řešení 3:

Tento skript přidá/odebere IP adresy do/z /etc/issue soubor podle potřeby:

#!/bin/sh
PREFIX="Local IP addresses:"
IPADDRS=$(hostname -I | tr " " "\n" | grep -v "^$" | sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tr "\n" " ")

perl -i -p -0777 -e "s/^$PREFIX[^\n]*\n\n//m; s/$/\n$PREFIX $IPADDRS\n/ if length('$IPADDRS')>6" /etc/issue

Pokud používáte distribuci založenou na Debianu, je nejlepší umístit skript do těchto umístění:

/etc/network/if-up.d/update-issue
/etc/network/if-post-down.d/update-issue

Tímto způsobem se skripty spouštějí pokaždé, když se rozhraní objeví nebo zanikne. Umístěte jej do /etc/rc.d/rc.local má nevýhodu v tom, že se během spouštění spustí pouze jednou.

Řešení 4:

můžeš to napsat jednou. bohužel neexistuje žádná getty escape sekvence pro zobrazení IP adresy eth0, ale existuje escape sekvence, kterou můžete použít v /etc/issue k zobrazení názvu hostitele:\n

vždy můžete staticky nastavit ip stroje v /etc/issue zápisem přímo do souboru. mějte na paměti, že soubor /etc/issue.net se používá pro vzdálené přihlášení, takže možná budete chtít upravit i ten.

každopádně po práci v okně terminálu ztratíte úvodní obrazovku a s ní informace o adrese IP/hostitele. nejlepším způsobem je nastavit název hostitele ve výzvě (většina linuxových distribucí) pomocí \h nebo \H nebo znovu, statické nastavení ip adresy, o které víte, že je nastavena na hostiteli v proměnné PS1, můžete nastavit proměnnou PS1 v /etc/profile na většině linuxových distribucí.

Řešení 5:

Systemd to poměrně usnadňuje. systemctl edit [email protected] s obsahem jako:

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

Potom systemctl daemon-reload && systemctl restart [email protected]


Linux
  1. Rozdíl mezi ~/.profile, ~/.bashrc, ~/.bash_profile, ~/.gnomerc, /etc/bash_bashrc, /etc/screenrc …?

  2. Jak se aktualizuje /etc/motd?

  3. Jak sledovat změny v souborech /etc/shadow a /etc/passwd pomocí Auditd?

  1. CentOS / RHEL :Jak obnovit ze smazaného souboru /etc/passwd

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Jaké je spojení mezi adresáři /etc/init.d a /etc/rcX.d v Linuxu?

  1. Proč mají všechny adresáře /home, /usr, /var atd. stejné číslo inodu (2)?

  2. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?

  3. Jak v mém souboru /etc/hosts/ v systému Linux/OSX vytvořím subdoménu se zástupnými znaky?