阻止 rsync 发送确认电子邮件

阻止 rsync 发送确认电子邮件

今天我发现我的 /var/mail/root 里有 25GB 的空间,里面全是来自 rsync 的电子邮件。显然,每次我运行 rsync 时,它都会向我(root@server)发送一封包含文件列表的电子邮件,这种情况每隔几分钟就会发生一次。

这是 Debian 服务器,我找不到 rsync 的任何配置文件。所以我的问题是:

1- Debian 上的 rsync 配置文件在哪里? 2- 如何禁用那些 rsync 电子邮件通知?

谢谢!

答案1

rsync 不会发送电子邮件,因此 rsync 周围的其他程序正在执行此操作。我假设这是一个调用 rsync 的 cronjob。运行 rsync 的 cronjob 在 stdout 上生成输出。默认情况下,cron 会将该输出邮寄给 root。

因此,首先,找到正在运行 rsync 的 cronjob。查看的地方:

/etc/crontab
/etc/cron.*/
run crontab -l as root
/var/spool/cron/*

找到调用 rsync 的 cronjob 后,尝试在命令行上手动运行它。您应该会发现它显示的输出与您收到的电子邮件相匹配。

接下来,您需要重定向或抑制该输出。在 cronjob 中,您可以执行以下操作:

* * * * * /usr/bin/rsync blah &>/dev/null

抑制所有输出。或者,更改您使用的 rsync 标志以消除输出,或将其重定向到日志文件(但不要忘记设置轮换!)。

另一个故障排除想法:在此问题中包含其中一封电子邮件的标题,以便我们检查它们以寻找线索。

答案2

如果您在 cron 之外运行 rsync,那么 rsync 不会向您发送电子邮件,而 cron 会。Cron 会将 cronjobs 的输出通过电子邮件发送给(默认情况下)根用户。您可以:

  • 运行 rsync 时不使用详细标志,在这种情况下它将不再生成文件列表。
  • 重定向 cron 作业的 stdout/stderr(使用 '>' i/o 重定向)

答案3

您需要在 cron 中的脚本中添加重定向来停止发送电子邮件。检查您的 crontab(或运行脚本的系统 crontab)并添加重定向,例如your_rsync_script.sh > /dev/null 2>&1

您还可以从 rsync 命令中删除“v”(详细程度)标志,以平息 cron 作业的输出。

答案4

对我来说,解决方案是将-q(quiet) 开关添加到我的 rsync 命令中。由于我是在我的用户下运行 rsync,所以这很方便,因为如果 rsync 由于某种原因失败,我仍然会收到电子邮件。

相关内容