【发布时间】:2021-03-03 23:34:21
【问题描述】:
我的本地机器上存储了一个 shell 脚本。该脚本需要如下参数:
#!/bin/bash
echo $1
echo $2
我需要在远程机器上运行此脚本(无需在远程机器上复制脚本)。我正在使用 Python 的 Paramiko 模块来运行脚本,并且可以毫无问题地在远程服务器上调用。
问题是我无法将这两个参数传递给远程服务器。这是我的python代码中的sn-p,用于在远程服务器上执行本地脚本:
with open("test.sh", "r") as f:
mymodule = f.read()
c = paramiko.SSHClient()
k = paramiko.RSAKey.from_private_key(private_key_str)
c.set_missing_host_key_policy(paramiko.AutoAddPolicy())
c.connect( hostname = "hostname", username = "user", pkey = k )
stdin, stdout, stderr = c.exec_command("/bin/bash - <<EOF\n{s}\nEOF".format(s=mymodule))
使用 bash 我可以简单地使用以下命令:
ssh -i key user@IP bash -s < test.sh "$var1" "$var2"
有人可以帮助我如何使用 Python 将这两个参数传递给远程服务器吗?
【问题讨论】:
标签: python bash ssh parameter-passing paramiko