Wie lege ich die Cron-HOME-Umgebungsvariable fest?

Wie lege ich die Cron-HOME-Umgebungsvariable fest?

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

verwandte Informationen