Jak ustawić zmienną środowiskową cron HOME?


0

Używam esmtp do wysyłania wiadomości e-mail jako danych wyjściowych zadania cron. Serwer SMTP i konfiguracja poświadczeń są przechowywane pod moim $ HOME / .esmtprc. Wygląda jednak na to, że zmienna $ HOME env jest ustawiona na „/”, a nie na HOME z / etc / passwd, jak sugeruje instrukcja. Zmieniłem / usr / sbin / sendmail na wyjściowe zmienne środowiskowe do pliku i widzę to:

HOME = „/”

Nagłówki wiadomości e-mail zawierają jednak:

X-Cron-Env: <HOME = / home / nazwa użytkownika>

który jest poprawny. Dlaczego więc $ HOME nie jest ustawione dla esmtp?


O ile ktoś już nie odpowiedział na twoje pytanie, lepiej nie dodawać edycji przez cały czas, a raczej ponownie napisać pytanie, aby było tak jasne, jak to możliwe.
— slhck

Czy używasz sudolub coś innego, co resetuje twoje środowisko? Czy zastanawiałeś się nad użyciem envdo jawnego ustawienia katalogu domowego dla tego sendmailprocesu?
— Daniel Beck

@Daniel: no sudo. Jak do tego celu użyć env? Nawet jeśli jest to potrzebne, dlaczego nie jest to udokumentowane?
— mehturt

Myśląc o tym jeszcze raz, wygląda na to, że HOME jest ustawione na skrypt uruchamiany z crontab, ale nie ustawione na sendmail, który wysyła dane wyjściowe zadań cron. Więc chyba muszę skonfigurować konfigurację SMTP do / etc / esmtprc i umożliwić jej odczytanie przez użytkownika (-ów), który uruchamia zadania crona.
— mehturt

Odpowiedzi:


0

Zakładam, że masz na myśli crona użytkownika, być może coś, do czego możesz dostać się poprzez 'crontab -e' jako konkretny użytkownik.

Często zadania crona są uruchamiane z $ HOME ustawionym na „/”.

W niektórych wersjach crona możesz to zmienić, dodając wiersz do crontab.

na przykład, możesz zrobić 'crontab -e', a następnie mieć linie wzdłuż następujących

HOME=/home/myhome
0 * * * * /bin/sh -c "echo $HOME" >> /tmp/doesitwork.log

lub coś podobnego

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.