python - 无法使用 Python ssh 运行远程脚本

标签 python linux ssh

我有下面的脚本(1.1.1.1上的test.py)来在另一台服务器上运行另一个远程脚本(script.py2.2.2.2 上)。我已经设置了 ssh key ,因此不会提示输入密码。

import subprocess

USER="user"
SERVER_IP="2.2.2.2"
SCRIPT_PATH="/home/abc/script.py"

print ("ssh {0}@{1} '/usr/bin/python {2} aaa bbb'".format(USER, SERVER_IP, SCRIPT_PATH))

rc = subprocess.check_output("ssh {0}@{1} '/usr/bin/python {2} aaa bbb'".format(USER, SERVER_IP, SCRIPT_PATH))

script.py 本身位于 1.2.3.4 上,并接受 2 个参数。

如果我复制脚本中打印出的命令,我可以在1.1.1.1上成功执行script.py。但是在 1.1.1.1 上运行 test.py 会出现错误:

OSError: [Errno 2] No such file or directory

我不明白为什么该脚本不起作用,但完全相同的命令可以自行运行。

最佳答案

使用附加参数:

shell=True

您的命令将是:

rc = subprocess.check_output("ssh {0}@{1} '/usr/bin/python {2} aaa bbb'".format(USER, SERVER_IP, SCRIPT_PATH),shell=True)

我假设您需要一个 shell 来运行 python 脚本。

关于python - 无法使用 Python ssh 运行远程脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51167584/

相关文章:

python - 正则表达式匹配无效的 Unicode 字符

python - pandas .to_sql 与 RDS 超时

linux - 没有内核线程的'ps'

python - ssh 使用 Python 限制命令

java - 使用 RMI 在远程系统上打开记事本

python - [GAE]模板中如何设置 `inline`

linux - 我正在尝试使用 grep 命令

python - 无法在 Django 设置文件中获取环境变量

docker - docker安装后ssh无法正常工作

python - 从 Spark DataFrame 选择空数组值