美文网首页
终端 login banner 显示 ip

终端 login banner 显示 ip

作者: jinyongli | 来源:发表于2017-09-08 13:46 被阅读0次

    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

    相关文章

      网友评论

          本文标题:终端 login banner 显示 ip

          本文链接:https://www.haomeiwen.com/subject/bdlgjxtx.html