终端 login banner 显示 ip

1. 目的

虚拟机安装的Arch linux,没装图形界面,配置的dhcp。为了方便通过ssh登录,便想起这个方法,然而并不知道怎么弄,于是搜索了一番,找到下面参考,记录一下免得忘了:

blog.sina.com.cn/s/blog_621bce900100wbzf.html

Running Services After the Network is up

2. 实现

登录信息在/etc/issue 和 /etc/motd 中,此处只需要修改/etc/issue,步骤就是在网络启动之后,用ifconfig或者ip addr取得并提取ip地址,输出到/etc/issue。由于现在的版本已经没有/etc/rc.local,所以要添加一个systemd的服务,这个服务调用脚本去做这个事。

1. 脚本文件/etc/rc.local:

#!/bin/bash

ipaddr=$(/usr/bin/ip addr | /usr/bin/sed -ne 's/.*inet \([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\/\([0-9]\{1,3\}\) *b.*/\1/p')

logintime=$(date)

echo "Arch Linux \r (\l) ($ipaddr - $logintime)" >/etc/issue

2. service文件

取个名字rc-local.service,文件就放在/etc/systemd/system/下面好了,由于systemd启动的服务是并行的,所以可能ip地址还没分配好,这个脚本就执行完了。只能在起个服务了

systemctl enable netctl-wait-online.service

(systemd目录下有netctl-wait-online.service 和 systemd-networkd-wait-online.service)

同时加上Wants= and After= dependency on network-online.target

[Unit]

Description=/etc/rc.local Compatibility

Wants=network-online.target

After=network-online.target

Before=getty@tty1.service

[Service]

Type=oneshot

ExecStart=/etc/rc.local

TimeoutSec=0

RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

3. 效果


4.freebsd

/etc/rc.local

#!/bin/sh

ipaddr=$(ifconfig | sed -ne 's/.*inet \([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\( .*b.*\)/\1/p')

echo " " > /etc/issue

echo "ip=($ipaddr)" >> /etc/issue

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • muahao阅读 2,165评论 0 3
  • 1、周末的时间用来休息,但是部分人用来锻炼,无论休息还是锻炼,只要做有意义的事,在时间内没有荒废,亦是一种负责。 ...
    享杰同学阅读 314评论 0 0
  • 辞旧迎新的春节又来到了我们的身边,惠州西湖公园张灯结彩,热闹非凡,灯光与月色相互衬托,散发出耀眼的光芒,为节日...
    小学生Happy阅读 475评论 0 0
  • 单打时对手都可以回直线和斜线 这时要注意的是意识上集中化斜线 身体上准备直线 这样直线和斜线都不会有问题 归位要偏...
    星星的简书阅读 500评论 0 0
  • 以后组件添加类怎么操作?比如:扩充基础配置、扩充工具类。 一、库增加内容:往本地库中拖入新增的类库,测试工程安装一...
    Lovell_阅读 263评论 0 0

友情链接更多精彩内容