我的服务器今天崩溃了,当我注意到它时,它已经离线大约 1 个小时了......
这每日流程日志显示以下内容:
用户 --- %cpu
mailnull - 958 - /usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t
这让我想到导致服务器崩溃的原因是 sendmail 产生了过高的服务器负载......
我的服务器上没有任何网站会发送大量电子邮件,所以我不知道是什么原因造成的。你知道吗?
并且,我怎样才能禁用 sendmail?
如果我停止它,我是否会停止从我的服务器接收电子邮件?
谢谢。
答案1
检查 /var/log/mail.log 查看您是否发送了大量邮件。
禁用守护进程并不一定意味着您将停止接收邮件。它将禁用通过连接到您的 SMTP 端口发送的邮件。它还将禁用无法立即投递的邮件的重试。您应该能够将 sendmail 设置为仅运行定期队列进程,而不运行守护进程。
不运行守护进程也会阻止来自其他服务器的传入邮件。如果您意外运行了开放中继,它将被关闭。
答案2
啊。Cpanel。
好吧,禁用 Sendmail 而不将其替换为其他邮件包(如 Exim 或 Postfix)将意味着您将无法从服务器发送邮件。所以是的,这意味着您将停止从服务器接收消息。
真正的问题很可能是某些垃圾邮件发送者正在使用您的系统发送邮件。还有其他几种方法可以防止这种情况发生,我建议您研究一下。
答案3
CPU 过高的原因之一可能是垃圾邮件。我还建议您检查自己是否被列入黑名单,例如 mxtoolbox.com。您的服务器也可能被列为发件人,因此会向您发送未送达的邮件通知。
答案4
与普遍的看法相反,这与收到的电子邮件无关。产生高 CPU 负载的过程是发送邮件,由 Cron Daemon 完成。禁用 sendmail SMTP 监听器将不是解决你的问题。
最有可能的是,您正在运行一个 cron 脚本,该脚本会生成大量输出,而 sendmail 正在尝试发送这些输出。这也假设 958 是实际的 CPU 负载,这似乎相当高,而且更可能是数字用户 ID,但那是另外一回事。