我正在使用 esmtp 发送电子邮件作为 cron 作业的输出。SMTP 服务器和凭据配置存储在我的 $HOME/.esmtprc 下。但是看起来 $HOME 环境变量设置为“/”,而不是手册建议的 /etc/passwd 中的 HOME。我更改了 /usr/sbin/sendmail 以将环境变量输出到文件,我看到了以下内容:
主页='/'
但是电子邮件标题包含以下内容:
X-Cron-Env:<HOME=/home/用户名>
这是正确的。那么为什么 esmtp 的 $HOME 没有设置呢?
答案1
我假设您指的是用户 cron,也许您可以作为特定用户通过“crontab -e”来获得某些东西。
通常,cron 作业在将 $HOME 设置为 '/' 的情况下运行。
在某些版本的 cron 中,您可以通过在 crontab 中添加一行来更改此情况。
例如,你可以执行“crontab -e”,然后执行下面的几行
HOME=/home/myhome
0 * * * * /bin/sh -c "echo $HOME" >> /tmp/doesitwork.log
或类似的东西