在/etc/issue中插入动态IP地址信息

本人一直使用VM虚拟机做LINUX的实验,虚拟系统常在单位和家两个地方使用。由于都是通过DHCP来获取IP地址,问题就来了。常常因为搞不清虚拟系统当前的IP地址是多少,而不得不先登录虚拟系统查询到IP地址后,再用SSH客户端登录虚拟机,一来二回相当麻烦。于是就想,能不能将IP地址信息在/etc/issue里动态显示,翻了一下issue相关文档,很遗憾的发现虽然issue支持的动态代码不少,但就是没有IP地址显示。最后放狗搜了一下,果然又找到一位和我有一样困惑的哥儿们贴出了他的解决方案(参见http://offbytwo.com/2008/05/09/show-ip-address-of-vm-as-console-pre-login-message.html) ,方案大体是写一个脚本放到if-up.d中,利用网卡激活事件来动态获取IP地址并写入到/etc/issue文件中(原实现稍复杂,个人觉得没必要)。根据这个思路我给出了自己的解决方案:

1 保存一份issue副本做为基准信息
cp /etc/issue /etc/issue_standard

2 将生成issue操作写入/etc/rc.d/rc.local文件
vim /etc/rc.d/rc.local,在文件末尾添加如下内容,并保存退出
# 动态创建issue文件,以获取动态IP地址
cat /etc/issue_standard >/etc/issue
echo -e 'IP: '`/sbin/ifconfig |grep "inet addr:" |grep -v "127.0.0.1"|awk '{ print $2 }'|awk -F: '{print $2}'`'\n' >>/etc/issue

3 重启系统,完成设置

 

后记:
本来是打算把生成issue操作写入/etc/profile,但实验发现此文件为每个用户登录时都会执行效率不高,且并不是所有用户都有权限操作/etc/issue文件,所以放弃。

posted @ 2011-10-05 21:00  lykyl的自留地  阅读(536)  评论(0编辑  收藏  举报