Linux:登录时发送一次性消息

Linux:登录时发送一次性消息

我正在寻找一个类似于 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

相关内容