Interaktywna powłoka ze środowiskiem identycznym jak cron


10

Zdaję sobie sprawę z wielu pułapek w magicznym świecie crontabs, ale czasami pomocne byłoby rozwiązywanie problemów, gdy masz jakiś sprytny sposób na wejście do interaktywnej powłoki (bash) z dokładnie identycznym środowiskiem, jak podczas uruchamiania skryptu powłoki z crontab.

Teraz myślałem o sobie /bin/openvt -c8 -- /bin/bash --noprofile -l, ale wymaga to uprawnień roota, ustawia zbyt wiele zmiennych, a prosty su myusernameustawia wiele dodatkowych środowisk.

Czy ktoś zna sposób na uruchomienie interaktywnej powłoki bash z środowiskiem identycznym do crona i niewymagającym uprawnień roota na Kubuntu?

Bonus, gdy działa w sesji ssh, w graficznym interfejsie użytkownika oraz w jednym lub więcej z następujących systemów operacyjnych: HP-UX, Solaris i AIX

Odpowiedzi:


14

Uruchom crontab -ei dodaj wpis za pomocą

* * * * * export -p > ~/cron-env

(jeśli w systemie Solaris lub systemie, który nie używa powłoki POSIX do interpretacji tego wiersza poleceń, użyj /usr/xpg4/bin/sh -c 'export -p > ~/cron-env'lub innej ścieżki do standardu shw tym systemie).

Poczekaj minutę i usuń tę linię.

Powinieneś teraz mieć cron-envplik w swoim katalogu domowym.

Następnie możesz uruchomić:

cd && env -i sh -c '. ./cron-env; exec sh'

Aby uruchomić powłokę w tym samym środowisku, w którym znajduje się zadanie cron.


Ciekawe, sprawdzi to, kiedy wrócę za około godzinę.
jippie

Genialne, działa jak sen!
jippie

Najlepsza odpowiedź. Głosowałbym więcej niż raz, gdybym mógł.
Sukima,

2

Cron nie jest interaktywną powłoką, więc to twój pierwszy problem. Jest to jednak w większości nie do zniesienia.

Rzeczywiste jest: zmienne środowiskowe. Spójrz na nagłówki z wiadomości cron, aby je znaleźć, a następnie ustaw zmienne w powłoce, aby je dopasować i odznacz wszystkie pozostałe zmienne.

Teraz jesteś bardzo blisko środowiska, jakie widzi cron.


Nigdy nie zauważyłem nagłówków wiadomości zawierających część środowiska, domyślnie Thunderbird ukrywa je przed użytkownikiem. Nagłówki niestety nie reprezentują pełnego środowiska.
jippie
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.