python脚本上的ssh返回none和no值
我正在将python文件(python脚本上的ssh返回none和no值,python,ssh,Python,Ssh,我正在将python文件(normalattr.py)从一台linux服务器复制到另一台linux服务器,然后在第二台服务器上使用以下命令执行该文件: ssh root@machinename python tmp/abnormalattr.py 这不会返回任何值。 但是如果我从第二台linux服务器执行如下操作: ssh root@machinename python tmp/abnormalattr.py …它返回正确的值。此脚本引用的是os.environ[“HOSTNAME”] 作为
normalattr.py
)从一台linux服务器复制到另一台linux服务器,然后在第二台服务器上使用以下命令执行该文件:
ssh root@machinename python tmp/abnormalattr.py
这不会返回任何值。
但是如果我从第二台linux服务器执行如下操作:
ssh root@machinename
python tmp/abnormalattr.py
…它返回正确的值。此脚本引用的是os.environ[“HOSTNAME”]
作为交互式登录shell调用的bash实例——由ssh hostname
创建到配置为使用bash的帐户,无需进一步参数——源/etc/profile
(如果存在),然后是第一个存在的~/.bash\u profile
,~/.bash\u login
或~/.profile
。(交互式非登录shell运行~/.bashrc
)
当您运行ssh hostname'some command'时,该命令将在非交互式shell中运行。因此,它没有/etc/profile
或任何其他脚本的优点
要以不依赖shell初始化的方式获取主机名,请使用Python中的
socket
库:
import socket
print(socket.getfqdn())
任何建议:-警告:不受信任的X11转发设置失败:未生成xauth密钥数据