#python #shell #ssh #environment-variables
#python #оболочка #ssh #переменные среды
Вопрос:
Мне нужно :
- ssh на удаленный сервер (в настоящее время я использую paramiko.SSHClient)
- Для сеанса установите переменные env, необходимые для запуска набора последующих команд / сценариев
- Запустите команды / скрипты.
Мои настройки env являются временными только для этого сеанса, поэтому я думаю, что изменение ~/.ssh/environment
не является вариантом. <<< Пожалуйста, исправьте, если я ошибаюсь.
Также сервер защищен паролем, поэтому я предполагаю, что подпроцесс.О Popen (ssh) также не может быть и речи? Опять же, я все еще пытаюсь что-то сделать, пожалуйста, поправьте меня.
Я безуспешно пытался:
a. ssh.exec_command(env_export_commands)
b. ssh.exec_command(command=dummy,environment=env_export_commands_dictionary).
Но после любого из вышеперечисленных действий я все еще вижу старые значения в ‘env’.
Любые указатели на то, чего мне не хватает, высоко ценятся.
Комментарии:
1. Узнал, что каждая команда exec_command выполняется в другой оболочке, поэтому настройка и проверка env (или любой другой команды, которая использует вновь установленные переменные env) должны выполняться в одной команде exec_command command_set = «export env1=value1; env;» script_using_env stdin, stdout, stderr = ssh.exec_command(command_set)
Ответ №1:
Узнал, что каждая команда exec_command выполняется в другой оболочке, поэтому настройка и проверка env (или любой другой команды, которая использует вновь установленные переменные env) должны выполняться в одной exec_command
то есть :
command_set = "export env1=value1; env;" script_using_env
stdin, stdout, stderr = ssh.exec_command(command_set)