Linux(centos7)开机命令行字符欢迎界面修改显示IP

Linux 有两个公告栏:

1.登录显示的“公告栏”配置文件/etc/issue ;

2.登录显示的“布告栏”文件 /etc/motd即message of today(布告栏信息)

这两个是普通文件,是程序,所以只支持以下 \ 斜杠开头的内容解释。

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

 

------------------------- 正文开始 --------------------------

一、issue文件,启动显示 IP 信息

既然 issue 不能执行代码,就用插入内容的方法显示内容。

1. 创建获,取系统IP的脚本, vim /bin/issue-show-IP.sh

 1 #!/bin/sh
 2 #---------------------------------------------------------------
 3 # Date:
 4 #  2023/01/04
 5 # URL: https://www.cnblogs.com/wutou/p/17024073.html
 6 # 脚本功能:
 7 #  获取本机 IP 后,将 IP 插入到 issue 文件,在开机字符欢迎界面,显示IP。
 8 #---------------------------------------------------------------
 9 
10 ## 获取本机IP
11 ipaddr=`ip addr | grep "scope global" | awk '{print $2}' |awk -F/ '{print $1}' | tr '\n' ' '`
12 ## 备份 issue 的新文件名
13 bak_issue_name='issue.e.bak'
14 
15 ## 备份 /etc/issue 文件
16 if [ -f /etc/${bak_issue_name} ];then
17   ## 恢复备份,清空上次插入结果,为新插入做准备
18   `cp /etc/${bak_issue_name} /etc/issue`
19 else
20   ## 备份
21   `cp /etc/issue /etc/${bak_issue_name}`
22 fi
23 
24 
25 ## 插入内容到 /etc/issue
26 echo "" >> /etc/issue
27 echo "IP: $ipaddr" >> /etc/issue
28 echo "open browser http://$ipaddr" >> /etc/issue
29 echo "" >> /etc/issue

  

2. 创建,开启启动服务配置: vim  /etc/systemd/system/issue.service

(开机运行sh脚本有多种方式,这里选择用服务启动。其他方式,参考:https://blog.csdn.net/zhanhjxxx/article/details/122811638

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

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

[Install]
WantedBy=multi-user.target

 

 [Unit]:服务的说明

Description: 描述服务
After定义服务启动的依赖条件 (After=network.target启动完network才执行此服务。后面还可以跟依赖项)

After=NetworkManager-wait-online.service 代表,依赖 NetworkManager 服务启动完成后才执行 issue-show-IP.sh
After=network.target   代表,依赖 network 服务启动完成后才执行 issue-show-IP.sh

[Service]:服务运行参数的设置
Type=forking 是后台运行的形式
ExecStart为 服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True 表示给服务分配独立的临时空间
注意:启动、重启、停止命令全部要求使用绝对路径
[Install]:服务安装的相关设置,可设置为多用户

 

 

After=network.target
After=syslog.target

经过试验,如果有相同的键,则取第一个。如上两个 After 键,那会取 After=network.target 

如果有 # 号开头的,视为注释,则忽略

 

3. 查看,服务列表中有没有 issue.service

systemctl list-unit-files |grep issue.service

-图片里显示已经添加完成,默认是禁用状态

 

4. 设置,服务开机启动

systemctl enable issue.service
systemctl list-unit-files |grep issue.service

-

 

 5. 开机显示IP:

 

 

二、motd文件,登录后显示 loging 信息

1.输入内容:vim /etc/motd

loging.....

-

 

2.登录后显示内容:

 

 

 

 

 

参考:

https://blog.csdn.net/weixin_36255837/article/details/116748570

https://www.cnblogs.com/lishidefengchen/p/11640091.html

https://www.cnblogs.com/mafeng/p/10697303.html

https://blog.csdn.net/m0_66434421/article/details/146710441 (After:定义服务启动的依赖条件。postgresql.service:表示依赖其他服务(如数据库))

https://www.cnblogs.com/usmile/p/13065594.html

 

 

After=network.target
posted @ 2023-01-04 10:03  悟透  阅读(1486)  评论(0)    收藏  举报