簡體   English   中英

如何將參數從python內部傳遞到stdin,stdout,stderr中的遠程ssh命令

[英]How to pass arguments from inside a python to a remote ssh command in stdin, stdout, stderr

我正在使用paramiko通過SSH連接到遠程主機,並運行一些簡單的命令,例如cd 在第二個命令中,我需要傳遞一個參數,如下面的示例所示:

import paramiko 
import os
import shutil
import datetime
import socket
X='ABCDF12'
p=paramiko.SSHClient()
p.set_missing_host_key_policy(paramiko.AutoAddPolicy())
p.connect("example.com",username="tatta",password="abcy1")
print(socket.gethostname())

stdin, stdout, stderr = p.exec_command("cd /bca/scripts;touch $X") 
opt = stdout.readlines()
opt = "".join(opt)
print(opt)

預期: ABCDF12
實際: touch command not working

我認為您的問題出在exec_command()參數中。 嘗試這個:

stdin, stdout, stderr = p.exec_command("sh -c 'cd /bca/scripts; touch {}'".format(X))

它在外殼中運行命令(例如cd可以工作),{}擴展X變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM