服务器神秘重启

服务器神秘重启

我有一个 VPS,几乎每天都会重启。今天我终于从日志中找到了线索

May 12 03:14:49   sshd[19379]: Did not receive identification string from 173.212.118.167
May 12 03:25:03   sshd[19489]: Did not receive identification string from 82.248.74.71
May 12 03:25:15   sshd[19493]: Did not receive identification string from 98.249.28.85
May 12 03:30:25   shutdown[19545]: shutting down for system halt
May 12 03:30:29   init: Switching to runlevel: 0
May 12 03:30:34   saslauthd[1654]: server_exit     : master exited: 1654
May 12 03:30:34   sshd[1656]: Received signal 15; terminating.
May 12 03:30:34   sshd[1655]: Received signal 15; terminating.
May 12 03:30:35   kernel: Kernel logging (proc) stopped.
May 12 03:30:35   kernel: Kernel log daemon terminating.
May 12 03:30:35   syslog-ng[364]: Termination requested via signal, terminating;
May 12 03:30:35   syslog-ng[364]: syslog-ng shutting down; version='3.2.2'
May 12 03:34:23   syslog-ng[388]: syslog-ng starting up; version='3.2.2'
May 12 03:34:24   ifup:     lo        
May 12 03:34:24   ifup:     lo        
May 12 03:34:24   ifup: IP address: 127.0.0.1/8  

看起来某个进程主动执行了重启。这种情况似乎每天都在同一个时间发生。幸运的是,停机时间很短。

我检查了 cron 作业,看是否有相关条目,但一无​​所获。奇怪的是,重新启动通常是在运行级别 6 而不是 0 下执行的。运行级别 0 应该关闭服务器,但它却在几秒钟后重新启动。

我该怎么做才能找到更多有关此内容的信息?

答案1

根据您的日志,有程序正在shutdown调用实用程序来执行关机。我会(暂时)/sbin/shutdown用一个记录大量信息的脚本替换它,如下所示:

#!/bin/bash
set > /shutdown.env
ps auxfwww > /shutdown.ps

然后,您可以查找PPID=/shutdown.env查看/shutdown.ps该 pid 是什么。

chmod +x(将脚本放到位后不要忘记。我会运行一次以确保它有效)。

答案2

日志中的此行init: Switching to runlevel: 0并不意味着未使用运行级别 6:可能已经使用,因为您的服务器确实重新启动了。

检查last reboot这是否是常规事件。如果是,请重新检查所有 cron 作业;last 还会向您显示服务器重启时登录的用户。

检查 sudo 日志(您可能需要启用 sudo 日志记录)。

auditctl -a entry,always -S reboot 您还可以尝试使用描述的审计机制 这里

相关内容