Mam bliźniacze serwery Linux, które powinny być skonfigurowane identycznie, jednak polecenia ssh do jednego z nich zawodzą w przypadku poleceń wymagających ścieżki określonej w ~ / .bashrc. Na przykład mogę użyć polecenia pwd
interaktywnego i ssh, ale jeśli spróbuję uruchomić program, który znajduje się w folderze bin aplikacji, działa on tylko w interaktywnej powłoce dla jednego z serwerów.
Plik / etc / profile i / etc / environment na obu serwerach są identyczne, jednak $ BASH_ENV jest ustawiony na ~ / .bashrc na serwerze, który działa poprawnie. Chcę ustawić $ BASH_ENV na serwerze, który nie działa, ale wolałbym ustawić go w tej samej lokalizacji, co ustawiony na działającym serwerze. Jakie są miejsca, w których Linux będzie działał podczas nieinteraktywnego logowania, na przykład polecenie ssh z innego komputera?
edycja: wiersz w / etc / passwd dla użytkownika określa / bin / bash na obu serwerach. Plik ~ / .bash_profile dla obu serwerów jest identyczny i zawiera if [ -f ~/.bashrc ]; then . ~/.bashrc; fi
. Jedyna różnica między systemami polega na tym, że $ BASH_ENV jest ciągiem zerowym na serwerze, który nie działa, i nie mogę znaleźć, gdzie został ustawiony na działającym serwerze.
edycja 2: Plik środowiska ~ / .ssh / na obu serwerach ma BASH_ENV = ~ / .bashrc
if [ -f ~/.bashrc ]; then . ~/.bashrc; fi