python脚本上的ssh返回none和no value

2024-10-03 13:23:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在将一个python文件(abnormalattr.py)从一台linux服务器复制到另一台linux服务器,然后在第二台服务器上使用以下命令执行它:

ssh root@machinename python tmp/abnormalattr.py

这将不返回任何值。 但如果我从第二台linux服务器执行如下操作:

ssh root@machinename
python tmp/abnormalattr.py

…它返回正确的值。你知道吗


Tags: 文件py命令服务器linuxrootsshtmp
1条回答
网友
1楼 · 发布于 2024-10-03 13:23:03

这个脚本引用了os.environ["HOSTNAME"](相当不必要地斜着引用)。你知道吗

bash的实例作为交互式登录shell被调用,由ssh hostname创建到配置为使用bash的帐户,而没有进一步的参数源/etc/profile(如果存在),然后是第一个存在的~/.bash_profile~/.bash_login~/.profile。(交互式非登录shell运行~/.bashrc)。你知道吗

运行ssh hostname 'some-command'时,该命令将在非交互的shell中运行。因此,它没有/etc/profile或任何其他脚本的好处。你知道吗


要以不依赖shell初始化的方式获取主机名,请使用Python中的socket库:

import socket
print(socket.getfqdn())

相关问题 更多 >