2 u013451083 u013451083 于 2016.02.29 15:20 提问

python使用paramiko模块ssh连接远程主机,环境变量问题 1C

想写个脚本去远程维护主机,执行相应命令,但是通过python使用paramiko模块ssh连接远程主机,环境变量不跟随用户,通过export环境变量也不起作用,
#!/usr/bin/python
import paramiko,fileinput
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
for line in fileinput.input(r'./mac_list'): #mac_list中存放的是ip username pwd
line=line.rstrip()
if line:
mac_ip,usrname,pwd=line.split() #分割line,向mac_ip、username、pwd赋值
ssh.connect(mac_ip,22,usrname,pwd) #建立连接
stdin,stdout,stderr=ssh.exec_command("export PATH=/bea/tuxedo/tuxedo11gR1/bin:$PATH") #export环境变量不生效,单独在目标主机执行这条语句可行
......
print stdout.readlines()
ssh.close()
#通过命令行输入效果

#通过相应用户登录后,环境变量并没有跟随用户

stdin,stdout,stderr=ssh.exec_command("echo $PATH")
stdout.readlines()
['/usr/local/bin:/bin:/usr/bin\n']
#export环境变量
stdin,stdout,stderr=ssh.exec_command("export PATH=/bea/tuxedo/tuxedo11gR1/bin:$PATH")
#未生效
stdin,stdout,stderr=ssh.exec_command("echo $PATH")
stdout.readlines()
['/usr/local/bin:/bin:/usr/bin\n']


3个回答

oyljerry
oyljerry   Ds   Rxr 2016.02.29 21:56

直接修改profile文件

u013451083
u013451083 我修改过后 然后source还是不生效呢?
2 年多之前 回复
huangzhijie3918
huangzhijie3918   2017.10.16 10:27

你好,你这个问题解决了吗?

u014301041
u014301041   2018.03.22 13:17

我也遇到这个问题了,诡异的是,第二次执行的时候就能获取到了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
windows下python配置paramiko进行ssh远程连接
相关链接 Paramiko website -- project home page https://github.com/paramiko/paramiko 1  安装active-python active-python已经集成了pypm,可以方便的安装paramiko库 下载地址 http://www.activestate.com/activepython/down
python使用paramiko模块通过ssh2协议对交换机进行配置
该代码用的是paramiko模块,python版本是python2.7 转载说明:转载请注明出处:http://write.blog.csdn.net/postedit?ref=toolbar 下面上源码 # -*- coding: utf-8 -*- import paramiko import time import os port = '22' username = '
windows下python SSH的使用——paramiko模块
paramiko模块实例。 paramiko模块安装参考另一篇博文:http://blog.csdn.net/wangyuling1234567890/article/details/21654013 #!/usr/bin/python import paramiko server_ip = '192.168.*.*' server_user = 'your_user' server
python利用paramiko实现ssh连接及远程执行命令
python3.6, windows下1,安装paramiko模块依赖cryptography:使用命令easy_install安装该模块时,如果报错“...microsoft visual c++ 14.0 is required.”,可以下载.whl文件,使用命令pip install cryptography.whl其他依赖模块bcrypt,pynacl类似安装2, 需求a, 实现执行远程命...
python利用paramiko连接远程服务器执行命令
python中的paramiko模块使用
Python 使用paramiko实现远程登录Linux主机并执行命令和操作
采用如下方式, 1. 首先创建SSHClient对象,ssh 2.使用ssh对象,调用connect函数建立连接 3.调用exec_command函数,在远程机执行相关操作 4.关闭连接 #!/usr/bin/env python #-*- coding:utf-8 -*- import paramiko HostIP = '192.168.1.1' username = 'roo
Python调用paramiko模块实现远程管理多台服务器
Python中的paramiko是一个非常有用的模块,通过此模块,可以远程操控多台服务器,无需在服务器上安装任何东西,只需要在代码执行机器上有Python,paramiko环境就可以了,对于需要多台服务器协同工作或者要管理多台服务器的情况下非常有帮助。 以下为代码示例 #!/usr/bin/env python # -*- coding:utf-8 -*-
利用python的paramiko模块ssh登录本地虚拟机并执行任意命令
执行结果: 代码: ╰─$ python paramiko_demo.py #!/usr/local/bin/python #coding=utf-8from paramiko import util from paramiko import SSHClient from paramiko import AutoAddPolicyip = '192.168.170.151' port
使用python的Paramiko模块登陆SSH
使用python的Paramiko模块登陆SSHparamiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。 python的paramiko模块可以方便的实现ssh登录,并执行命令。
python (paramiko模块) 利用id_rsa登陆远程的服务器
一、机器lan利用ssh登陆机器jerry(无需输入密码) 假设:机器lan和机器jerry的ip分别为192.132.151.128和192.132.151.129,且都是ubuntu 1、机器lan利用命令ssh-keygen -t rsa在~/.ssh里生成了id_rsa和id_rsa.pub两个文件; 2、scp  ~/.ssh/id_rsa.pub  jerry@192.132.1