Ich verwende esmtp, um E-Mails als Ausgabe eines Cron-Jobs zu senden. Der SMTP-Server und die Anmeldeinformationen sind unter meinem $HOME/.esmtprc gespeichert. Es sieht jedoch so aus, als ob die Umgebungsvariable $HOME auf „/“ gesetzt ist und nicht auf HOME aus /etc/passwd, wie im Handbuch vorgeschlagen. Ich habe /usr/sbin/sendmail geändert, um Umgebungsvariablen in eine Datei auszugeben, und sehe Folgendes:
HOME='/'
Die E-Mail-Header enthalten jedoch Folgendes:
X-Cron-Env: <HOME=/home/Benutzername>
was richtig ist. Warum ist $HOME für esmtp nicht gesetzt?
Antwort1
Ich gehe davon aus, dass Sie sich auf einen Benutzer-Cron beziehen, möglicherweise auf etwas, auf das Sie als bestimmter Benutzer über „crontab -e“ zugreifen können.
Cron-Jobs werden häufig mit dem Wert $HOME auf „/“ gesetzt ausgeführt.
In einigen Versionen von Cron können Sie dies ändern, indem Sie der Crontab eine Zeile hinzufügen.
Sie können beispielsweise 'crontab -e' ausführen und dann Zeilen wie folgt erhalten:
HOME=/home/myhome
0 * * * * /bin/sh -c "echo $HOME" >> /tmp/doesitwork.log
oder etwas ähnliches