我正在尝试传达一条简单的信息,其大意是
服务器将于世界标准时间 3 月 1 日晚上 11:00 关闭以进行更新。
所有通过 ssh 访问我的 Raspberry Pi 服务器(运行 Raspbian)的用户。
我不想添加横幅,但有没有办法让所有用户在登录时显示一条简单的消息,直到设定时间或重新启动为止?如果可以的话,我可以让服务器在设定的时间自动运行 shell 脚本吗?
答案1
向登录服务器的用户显示消息的方式正是通过 ssh 横幅。这些通常存储在/etc/motd
.因此,既然您想自动化它,您可以执行以下操作:
复制现有文件
sudo cp /etc/motd /etc/motd.orig
手动编辑文件并添加横幅,或者,如果您也希望自动执行此操作,请执行以下操作:
echo "Server will be going down at 11:00pm UTC, March 1st, for updates." | sudo tee -a /etc/motd
这会将您的消息附加到文件中当前的内容中。
设置一个 cronjob,在重新启动时恢复原始文件。
echo '@reboot root cp /etc/motd.orig /etc/motd' | sudo tee -a /etc/crontab
就是这样。任何通过 ssh 登录的人现在都会看到您的消息,并且该消息将在重新启动后消失。
但: 这不是一个好主意。一方面,您需要记住删除@reboot
在重新启动后删除 cronjob,否则,从现在开始,它会在每次重新启动时运行。而且,整件事没有多大意义。横幅系统设计为手动编辑,因为它是系统管理员向用户传递消息的一种方式。因为您将关闭服务器手动、应用您的更新或您需要的任何维护手动并重新启动手动,我不明白您为什么要费心自动删除横幅。只需添加它,做你的事情,然后在它不再相关时将其删除。
答案2
这是确切地每日消息系统一直以来的用途是什么。事实上,NetBSD 和 OpenBSD 手册中甚至都有向用户发出“机器将于周六停机”的警告。
按照惯例,将警告放入您的motd
文件中/etc/motd
。重新启动进行维护时将其拆下。某些操作系统在某种程度上过度鸡蛋化,提供了自动生成消息的复杂方法,在某些情况下,这些消息更适合作为登录横幅的一部分,但即使使用它们,该/etc/motd
文件也是一个简单的手动编辑文件。
一般来说,motd
是日常的信息来自管理员您当用户登录时。
进一步阅读
- 如何在 Debian Jessie 8.2 中为 ssh 设置动态每日消息 (motd)?
motd
。 FreeBSD 文件格式手册。 1997年2月13日。motd
。NetBSD 文件格式手册。 1994 年 12 月 28 日。motd
。 OpenBSD 文件格式手册。 2009年5月6日。