cron 작업의 출력으로 이메일을 보내기 위해 esmtp를 사용하고 있습니다. SMTP 서버 및 자격 증명 구성은 내 $HOME/.esmtprc에 저장됩니다. 그러나 $HOME env 변수는 매뉴얼에서 제안하는 대로 /etc/passwd의 HOME이 아닌 '/'로 설정된 것처럼 보입니다. 환경 변수를 파일로 출력하도록 /usr/sbin/sendmail을 변경했는데 다음이 표시됩니다.
홈='/'
그러나 이메일 헤더에는 다음이 포함됩니다.
X-Cron-Env: <HOME=/home/사용자 이름>
맞습니다. 그렇다면 esmtp에 대해 $HOME이 설정되지 않은 이유는 무엇입니까?
답변1
나는 당신이 특정 사용자로서 'crontab -e'를 통해 얻을 수 있는 사용자 cron을 언급하고 있다고 가정합니다.
종종 cron 작업은 $HOME을 '/'로 설정하여 실행됩니다.
일부 cron 버전에서는 crontab에 줄을 추가하여 이를 변경할 수 있습니다.
예를 들어, 'crontab -e'를 수행한 후 다음과 같은 줄을 가질 수 있습니다.
HOME=/home/myhome
0 * * * * /bin/sh -c "echo $HOME" >> /tmp/doesitwork.log
아니면 비슷한 것