我有一台Linux机器,我希望它在显示login提示之前显示的横幅中显示当前IP。 我怎样才能做到这一点? 我考虑制作一个在MOTD中findIP的启动脚本,但发现MOTD只有在login后才能显示,而且我需要在login之前显示消息。
如果重要的话,这是CentOS,我觉得版本6。
我通过编辑/etc/issue来完成了这个任务。 以下脚本在启动时运行,它检测当前IP,然后将其添加到/etc/issue :
#!/bin/sh # Save this file as /etc/network/if-up.d/mod-etc-issue and chmod +x if [ "$METHOD" = loopback ]; then exit 0 fi # Only run from ifup. if [ "$MODE" != start ]; then exit 0 fi IPADDR=`ip as eth0 | grep inet | awk '{ print $2 }' | head -1` # First time, back up /etc/issue if [ ! -f /etc/issue.orig ] then cp /etc/issue /etc/issue.orig fi # "Reset" /etc/issue to original state cp /etc/issue.orig /etc/issue # Append IP address to /etc/issue echo "eth0 address: $IPADDR" >> /etc/issue echo "" >> /etc/issue
该脚本是为基于Debian的系统编写的,但是对于基于RHEL的系统应该很简单。
如果要在/etc/issue显示IP地址,则可以在问题文件中使用\4或\4{eth0} 。 这当然适用于CentOS 7和Ubuntu 16.04及更高版本。
例如:
IP: \4
将被replace为IP:那么你的IP地址。
根据您的系统,这些文件可能是/etc/issue和/或在/etc/ssh/sshd_config定义为Banner的文件。 不过,我几乎肯定那些文本文件是严格的,所以你必须找出你的IP地址并创build文件。
(更新: /etc/issue不是严格的文本文件,它有几个转义字符扩展到系统信息,但是IP地址不在其中。
这导致你的下一个问题,如何find你的机器的IP地址,这不一定是一件容易的事情。