【问题标题】:ssh on python script returning none and no valuepython脚本上的ssh没有返回值
【发布时间】:2018-06-22 01:31:32
【问题描述】:

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

ssh root@machinename python tmp/abnormalattr.py

这将返回 NONE。 但是如果我像这样从第二个 linux 服务器执行:

ssh root@machinename
python tmp/abnormalattr.py

...它返回正确的值。

【问题讨论】:

    标签: python ssh


    【解决方案1】:

    这个脚本指的是(相当不必要的间接)os.environ["HOSTNAME"]

    作为交互式登录 shell 调用的 bash 实例——由 ssh hostname 创建到配置为使用 bash 而没有其他参数的帐户——源 /etc/profile(如果存在),然后是第一个存在的 @987654324 @、~/.bash_login~/.profile。 (交互式非登录 shell 运行 ~/.bashrc)。

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


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

    import socket
    print(socket.getfqdn())
    

    【讨论】:

    • 任何建议:- 警告:不受信任的 X11 转发设置失败:未生成 xauth 密钥数据
    猜你喜欢
    • 2022-07-21
    • 2015-01-19
    • 2016-03-14
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多