记录关闭命令用法/消息

记录关闭命令用法/消息

我想监控我们的任何机器何时运行关机命令,以便它可以发送电子邮件或即将重新启动/关机的通知。我认为关机运行时它可能会将广播消息转发到 syslog,但我没有看到它存储在任何日志中。有没有办法在运行此命令时记录?

[编辑] 需要澄清的是,当关机命令运行时,我的意思是当它开始正在运行(或首次广播有关关机的消息时),而不是系统实际开始关机时。因此,我希望能够捕捉到它发送此类消息的时间:系统将在 5 分钟内关闭并重新启动!

答案1

如果只想监视关机命令:

  • 你可以将它包装在发送电子邮件的 shell 脚本中
  • 您可以使用预加载的库来记录如下命令史努比记录器
  • 您可以使用 systemtap 记录所有用于关机的 exec*()。

问题是,如果有人只是按下重置按钮,您将没有记录。为此,可靠的方法是在机器启动时进行记录。

请注意,最后的日志是在机器启动时创建的条目。

可以使用 BMC/LOM/IPMI 进行带外记录。如果您的主板集成了 BMC,或者您已安装 BMC 作为扩展卡,则可以使用此功能。

答案2

您可以修改 syslog.conf 来捕获这些消息。

例如,如果你有标准系统日志,那么行

 *.*   /var/log/all.log

存储所有消息。

如果你有 rsyslog(例如现代 debian),你可以在事件发生时启动一些脚本(发送电子邮件等)

答案3

我发现没有办法在关机时发送通知(在 RedHat 上)。请记住:

  • 在关机期间发送的电子邮件可能会保留在邮件队列中,直到系统恢复在线
  • 如果发生断电,关机期间发生的任何操作都不会发生。在这种情况下,你最好在启动过程中执行某些操作。

但是你可以在启动时使用 cron 执行操作,使用@reboot“昵称”

因此,如果脚本 /usr/local/bin/email-on-reboot.sh 发送有关启动的电子邮件/通知,请将其添加到/etc/crontab

@reboot  /usr/local/bin/email-on-reboot.sh

相关内容