将参数传递给本地存储的bash脚本,该脚本需要使用Python Paramiko在远程计算机上执行
我在本地机器上存储了一个shell脚本。脚本需要如下参数:将参数传递给本地存储的bash脚本,该脚本需要使用Python Paramiko在远程计算机上执行,python,bash,ssh,parameter-passing,paramiko,Python,Bash,Ssh,Parameter Passing,Paramiko,我在本地机器上存储了一个shell脚本。脚本需要如下参数: #/bin/bash 回声1美元 回声2美元 我需要在远程机器上运行此脚本(而不复制远程机器上的脚本)。我正在使用Python的Paramiko模块来运行脚本,并且可以在远程服务器上调用,而不会出现任何问题 问题是我无法将这两个参数传递给远程服务器。以下是在远程服务器上执行本地脚本的python代码片段: 打开(“test.sh”、“r”)作为f: mymodule=f.read() c=paramiko.SSHClient() k=
#/bin/bash
回声1美元
回声2美元
我需要在远程机器上运行此脚本(而不复制远程机器上的脚本)。我正在使用Python的Paramiko模块来运行脚本,并且可以在远程服务器上调用,而不会出现任何问题
问题是我无法将这两个参数传递给远程服务器。以下是在远程服务器上执行本地脚本的python代码片段:
打开(“test.sh”、“r”)作为f:
mymodule=f.read()
c=paramiko.SSHClient()
k=paramiko.RSAKey.from_private_key(private_key_str)
c、 设置缺少主机密钥策略(paramiko.AutoAddPolicy())
c、 连接(hostname=“hostname”、username=“user”、pkey=k)
stdin,stdout,stderr=c.exec_命令(“/bin/bash-执行相同的操作,您在bash中执行的操作是:
command=“/bin/bash-s{v1}{v2}”。格式(v1=var1,v2=var2)
stdin,stdout,stderr=c.exec_命令(command)
标准写入(mymodule)
stdin.close()
如果您更喜欢heredoc语法,如果希望展开参数,则需要使用单引号:
command=“/bin/bash-s{v1}{v2}在bash中执行相同的操作:
command=“/bin/bash-s{v1}{v2}”。格式(v1=var1,v2=var2)
stdin,stdout,stderr=c.exec_命令(command)
标准写入(mymodule)
stdin.close()
如果您更喜欢heredoc语法,如果希望展开参数,则需要使用单引号:
command=“/bin/bash-s{v1}{v2}command=“/bin/bash-s{v1}{v2}command=“/bin/bash-s{v1}{v2}”