2021年1月19日 星期二

How to set /etc/issues to show the IP address of eth0


linux virtual machines with a bridge interface, and I want to display the machine's IP address after the machine is booted (in login, it usually shows the release and kernel).

This is just a text file...you write it in the same way you would send text to the file using any other shell script. Something like this will replace /etc/issue with your ip address:

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


Obviously, depending on the information you want in /etc/issue, you can make this more complex file at will.

You can write to this file using the local equivalent /etc/rc.d/rc.local (usually executed after all other startup scripts).


On CentOS 7 and Debian 8, just append the following line to /etc/issue

  1. My IP address: \4


This will resolve to the machine’s IPv4 address. If you have multiple network interfaces and want to select a specific network interface, you can use specify it

  1. My IP address: \4{eth0}


Check man getty for the list of escape sequences supported by your distribution.

This script will add/remove IP addresses to/from /etc/issue Submit files as needed:

  1. #!/bin/sh
  2. PREFIX="Local IP addresses:"
  3. IPADDRS=$(hostname -I | tr " " "\n" | grep -v "^$" | sort -t . -k 1,1n -k 2,2n -k 3,3n -k 4,4n | tr "\n" " ")
  4. perl -i -p -0777 -e "s/^$PREFIX[^\n]*\n\n//m; s/$/\n$PREFIX $IPADDRS\n/ if length('$IPADDRS')>6" /etc/issue

If you are using a Debian-based distribution, it is best to put the script in the following location:


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


In this way, the script will be executed whenever the interface appears or fails. Putting it in /etc/rc.d/rc.local has the disadvantage of only executing it once at startup.



沒有留言:

 Ubuntu has a mechanism, that is, the installed network card (NIC) will be renamed to another name when the system is booted. Although there...