我正在尝试将日志发送到我的电子邮件。我通过 SSH 执行此操作。我编辑了文件:
/usr/share/logwatch/default.conf/logwatch.conf
并编辑了这些行:
Output = mail
Format = html
Encode = none
MailTo = [email protected]
我努力了:
须藤日志观察
但该命令只是挂在那里,但仍然有响应。例如,我仍然可以按 Enter 键转到下一行。
我尝试过手动执行此操作:
sudo logwatch --detail Low --mailto email@address --service all --range 昨天
同样的问题。
几分钟后它停止了,我可以输入另一个命令。我检查了我的电子邮件,但 logwatch 没有任何信息。即使在我的垃圾邮件/垃圾文件夹中。
知道发生了什么吗?
编辑:我安装了 iptables、fail2ban 和 ufw。如果这有什么区别的话。
我也尝试过:
echo "This is a test" | mail -s Testing [email protected]
我在垃圾邮件文件夹中收到了该电子邮件。我觉得问题出在Logwatch上。
答案1
可能的原因是您没有使用sendmail
而是mail
发送电子邮件:
nano /usr/share/logwatch/default.conf/logwatch.conf
查找和替换:
#mailer =“/usr/sbin/sendmail -t”
和
邮件程序 =“/usr/bin/mail”
或使用您选择的可执行文件。
然后测试
sudo /usr/sbin/logwatch --output mail --format html --range yesterday --service all
可以测试常规邮件发送的发送
echo "This is the body of the email" | mail -s "This is the subject line" [email protected]
答案2
例如,请查看 MTA 的日志文件/var/log/exim4/mainlog
并留意 SMTP 错误。
我建议这样做,因为我遇到过非常相似的情况,我的电子邮件提供商的 SMTP 服务器将 logwatch 生成的电子邮件归类为垃圾邮件,拒绝转发它们。正如您所展示的,其他电子邮件已通过。
解决方法:
就我而言,它有助于将 logwatch 的输出保存到文件中并将其附加到电子邮件中:
#!/bin/bash
tmpfile="/tmp/logwatch.txt"
/usr/sbin/logwatch > $tmpfile
echo "attached." | mail -s "logwatch output" -A "$tmpfile" email@provider
在 debian 上,logwatch 附带一个由 cron 调度的脚本(位于/etc/cron.daily
)。您可以使用此代码片段来修改它。