CentOS开机登陆前显示ip

不登陆系统就不知道IP,在某些时候有点尴尬,之前见过在EVE模拟器上能够开机不登陆就显示ip

所以研究了下如何能做到,顺便记录下来,以免忘记~

  1. 登陆前显示公告的配置文件是:/etc/issue ;

  1. 登陆后显示公告的配置文件是:/etc/motd ; ( message of today )

这两个是普通的文本文件,只支持简单的一些转义,罗列如下:

\d 本地端时间的日期;
\l 显示第几个终端机接口;
\m 显示硬件的架构等级 (i386/i486/i586/i686...);
\n 显示主机的网络名称;
\o 显示 domain name;
\r 操作系统的版本 (相当于 uname -r)
\t 显示本地端时间的时间;
\S 操作系统的名称;(大写S)
\v 操作系统的版本。

所以,简单编辑这两文件都做不到我想要的结果。

那就考虑用自建开机服务程序去获取ip并写入到/etc/issue , 操作方法如下:

  1. 编写shell文件 vim /bin/issue.sh ,根据ip addr命令并使用awk命令得到ip后写入文件

#!/bin/sh
ipaddr=`ip addr | grep "scope global" | awk '{print $2}' | awk -F/ '{print $1}' | head -1`

#以下代码检测issue.e.bak是否存在,如果存在就还原为原始文件用于追加写入上面得到的ip,如果不存在,就备份为issue.e.bak
if [ -f /etc/issue.e.bak ] ; then
        `cp /etc/issue.e.bak /etc/issue`
else
        `cp /etc/issue /etc/issue.e.bak`
fi

echo "" >> /etc/issue
echo "This host's IP is : $ipaddr" >> /etc/issue
echo "" >> /etc/issue
  1. 编写开机启动服务配置文件: vim /etc/systemd/system/issue.service

[Unit]
Description=Issue INFO
After=NetworkManager-wait-online.service

[Service]
Type=oneshot
User=root
ExecStart=/bin/issue.sh

[Install]
WantedBy=multi-user.target
  1. 设置服务开机启动并检查:systemctl enable issue.service & systemctl list-unit-files | grep issue.service

[root@centos8-test ~]# systemctl list-unit-files | grep issue.service
issue.service                              enabled

4.最后,reboot下您的机器。然后就能看到效果啦~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值