在日常运维工作中,我们经常会通过SSH登录服务器。通常登录后,系统会显示一些简单的欢迎信息,但这些信息可能过于基础,无法快速提供关键的系统状态。而通过定制化登录欢迎界面(通常称为 MOTD,即Message of the Day),可以让系统登录更具价值,第一时间呈现服务器的基本信息,极大提升运维效率。

📝什么是MOTD

MOTDMessage of the Day的缩写,意为“每日消息”。它是一种在用户登录到服务器时显示的一段信息,主要用于提供系统管理员希望传达的重要信息或系统的基本状态。

Linux系统中,MOTD通常是用户通过SSH或终端登录系统后看到的第一条信息。它的内容可以是静态的,也可以是动态生成的,具体根据需求而定。

📝MOTD的主要作用

  • 显示系统信息

  • 传递重要通知

  • 个性化欢迎信息

  • 提升用户体验

📝MOTD的工作机制

  • 静态 MOTD
    • 内容固定,通常存储在/etc/motd文件中,系统会在用户登录时直接读取并显示。
  • 动态 MOTD
    • 通过脚本动态生成内容,例如系统状态、更新提醒等,通常位于 /etc/update-motd.d/ 目录中。每次用户登录时,系统会运行这些脚本,并生成新的MOTD信息。

📝如何查看和修改MOTD

  • 查看当前MOTD
cat /etc/motd

如果系统使用动态MOTD,则内容可能会实时更新。

  • 修改静态MOTD

编辑 /etc/motd 文件:

sudo vim /etc/motd

添加自定义信息后保存。

  • 创建动态MOTD脚本

/etc/update-motd.d/目录下创建脚本,例如

sudo nano /etc/update-motd.d/99-custom

编写脚本逻辑后,赋予执行权限:

sudo chmod +x /etc/update-motd.d/99-custom

📝综合案例

这个场景中,每次登录服务器后,希望能够显示一些概要信息。具体效果如下图所示:

查看sshd_config配置文件中PrintMotd的值是否为yes,如果不是则需要修改yes

sudo sed -i '/^#\?PrintMotd/c\PrintMotd yes' /etc/ssh/sshd_config

变更过sshd_config配置文件需要重启SSH服务。

 systemctl restart sshd

/etc/update-motd.d/目录下创建文件,文件名自定义,内容就是要动态显示的信息。并赋予执行的权限。如下所示:

root@ansible:/etc/update-motd.d# vim 99-sysinfo
root@ansible:/etc/update-motd.d# chmod +x 99-sysinfo
root@ansible:/etc/update-motd.d# ll
total 36
drwxr-xr-x  2 root root 4096 Jan 27 08:05 ./
drwxr-xr-x 76 root root 4096 Jan 26 01:12 ../
-rwxr-xr-x  1 root root 1220 Dec  5  2019 00-header*
-rwxr-xr-x  1 root root 1157 Dec  5  2019 10-help-text*
-rwxr-xr-x  1 root root 4677 Dec  5  2019 50-motd-news*
-rwxr-xr-x  1 root root  299 Dec 18  2019 91-release-upgrade*
-rwxr-xr-x  1 root root 4767 Jan 27 08:05 99-sysinfo*

通过执行如下命令,检查update-motd.d目录下的脚本是否能执行成功:

run-parts /etc/update-motd.d

上述命令执行成功后,会输出如下图的结果:

完成了上述配置后,下一次登录后就会展示脚本执行的返回的结果。如下图所示:

📝总结

一个简单而实用的登录欢迎界面,不仅提升了系统的可用性,还能让用户在登录时一目了然地掌握系统状态。通过配置静态或动态的MOTD,可以实现高效和美观的服务器登录体验。动手尝试定制你的MOTD,让每次登录都成为一种享受吧!


感兴趣的小伙伴可以关注公众号私信回复脚本链接,即可获取该文章用到脚本文件。


推荐阅读