在我的 Debian 系统上,我有一个传统的本地“邮件”设置。软件包安装设置了一些合理的默认值。 (也许它提示我接受设置;我不记得了)。
编辑:在 Debian 9 及更高版本中,exim4-daemon-light
不再作为 Debian“标准任务”(软件包集)的一部分安装。
这很有用的主要原因是cron
作业(以及at
作业)中的错误,这些错误作为本地“邮件”传递。
$ aptitude why exim4-daemon-light
i exim4 Depends exim4-daemon-light | exim4-daemon-heavy | exim4-daemon-custom
$ aptitude why exim4
i logrotate Depends cron | anacron | cron-daemon
i A cron Recommends exim4 | postfix | mail-transport-agent
Fedora Workstation 不包含有效的邮件设置。你必须选择安装它,和你可能需要做一些额外配置。
Ubuntu 基于 Debian。在 Ubuntu 桌面上,假设您安装了cron
(或at
),您是否有一个(工作的)本地邮件设置?
编辑:我想在 Debian 9 上,如果你想要的话,你已经需要选择安装邮件系统,尽管有“推荐”。
(我写了一些 Ansible 的东西,在 Debian 系统上设置 cron 作业。我希望最终将系统切换到 Ubuntu 桌面。所以我正在考虑我的脚本所做的假设)。
答案1
Ubuntu 桌面 18.04 不包括cron
.
如果你安装了cron
,它会不是自动安装邮件传输代理。 Ubuntucron
软件包不再“推荐”任何“邮件传输代理”软件包。
(这感觉像是另一个不一致的地方,因为 cron 的包描述仍然说“你可能还应该安装一个邮件系统,以便你可以接收这些消息”。他们没有费心添加一个Suggests
来代替Recommends
......可能是因为如果他们这样做的话,没有人会真正注意到。)
另外,问题中有一个关于 的链接pam_mail
。看起来 Ubuntu Desktop 18.04 的默认安装仍然包含pam_mail
行/etc/pam.d/*
- 与 Fedora Workstation 不同。
如果您不需要专门发送邮件,您可能会对 感兴趣systemd-cron
。显然它将 cronjob 输出记录到系统日志中。如果邮件系统可用,它还会将任何输出作为邮件发送。
补丁于2012年提交在 Debian 软件包中提供类似的功能cron
。补丁的描述说,默认情况下,它只会在无法发送邮件时记录输出。截至目前,票务尚未关闭。因此,此时,如果 cronjob 生成输出,则特定输出可能会丢失。这被记录为信息性消息;它没有被标记为警告或错误。
Jul 27 16:36:01 debian9-vm CRON[2337]: pam_unix(cron:session): session opened for user root by (uid=0)
Jul 27 16:36:01 debian9-vm CRON[2338]: (root) CMD (echo fail; exit 1)
Jul 27 16:36:01 debian9-vm CRON[2337]: (CRON) info (No MTA installed, discarding output)
Jul 27 16:36:01 debian9-vm CRON[2337]: pam_unix(cron:session): session closed for user root