SSH через Java с переменными среды
Я пишу код Java для подключения к удаленному серверу Unix с помощью плагина java-ganymed (также пытался с JSch).
Connection conn = new Connection("host");
conn.connect();
boolean testAuth = conn.authenticateWithPassword("user", "pwd");
Session sess = conn.openSession();
sess.execCommand(Commands); //"Commands" is a string variable with "sh" command.
Мне нужно запустить сценарий оболочки, расположенный на удаленном сервере, который использует некоторые переменные среды этого логина. Мой вход выполнен успешно, и скрипт выполняется, но не до конца. Я проверил, что переменные среды загружены не полностью по сравнению с использованием интерактивной оболочки входа в систему, такой как Putty и т. Д. (Использовала команду 'env').
Я попытался запустить / etc / profile,.bashrc и т. Д. До моего сценария. Сценарий продвигается на один шаг вперед, но снова останавливается. Таким образом, очевидно, что было загружено несколько переменных среды, но не все. Мне нужно обойти, чтобы убедиться, что все переменные среды загружены для неинтерактивного сеанса Java. У меня нет разрешения root для удаленного сервера.
Спасибо Арья
1 ответ
Вместо того, чтобы пытаться бежать /etc/profile
а также .bashrc
попробуйте использовать их в качестве исходных скриптов. Выполните это как часть вашего скрипта или команды:
. .bashrc
. /etc/profile
. /etc/environment
или любой другой соответствующий конфигурационный скрипт (точка с начала файла важна).