我正在寻找一个类似于 wall 的命令,但它会向当前登录的用户发送一条消息,如果他们尚未登录,则会在他们下次登录 ssh 时显示消息(但只显示一次)。上下文是,我可能(不保证)遇到网络中断,但不是机器上的每个人都会收到维护电子邮件,我宁愿将电子邮件转发给机器的所有用户。不打算将消息放入 /etc/motd,因为这样每次登录时都会显示该消息。
答案1
有一种标准方法可以做到这一点:news
。在过去,这是一个标准命令,但现在它有点不可靠,必须手动安装。您想要的 Debian/Ubuntu 软件包是sysnews
。
要使用它,
- 创建一个名为的文件,其中
/var/lib/sysnews/login-message
包含您的消息 - 添加
news
到/etc/profile
(或相当于你的用户的 shell)
当您的用户登录时,他们会第一次看到该消息,但随后.news_time
会在他们的主目录中创建该消息,并且他们只会看到自该文件的时间戳以来被修改过的新闻项目。
答案2
你有可以执行此操作的全局变量吗/etc/profile
?无法捕获每个人和他们当天的奇怪 shell,但基本上
if [ ! -e "$HOME/.saw-the-message" ];
echo "The system will go down tomorrow, but I will never tell you again!"
touch $HOME/.saw-the-message
fi
问题:
- 之后你必须清理锁定文件
- 怀念一些使用
$weird_shell