ssh可在终端机上运行,​​但不能通过Python运行

时间:2020-02-16 06:17:45

标签: python ssh

我正在尝试使用Python脚本通过ssh将数据写入远程计算机上的磁盘。但是,它给出了dd: /dev/xbd2d: Device not configured.

的错误
import argparse
import os
import time

parser = argparse.ArgumentParser(description='basis')
parser.add_argument("-g", default=1, help="")
args = parser.parse_args()
volume = args.g
instance_ip=10.1.12.3
cmd_ssh='ssh -tt -i basis.pem root@'+instance_ip+ ''' "date | dd of=/dev/xbd2d"'''
os.system(cmd_ssh)

非常不寻常的是,如果使用命令:

ssh -tt -i basis.pem root@10.1.12.3 "date | dd of=/dev/xbd2d"
在终端中的

,它可以正确执行,没有任何问题,并将数据写入磁盘。我用C ++编写了相同的脚本,并且运行良好,但是由于某种原因Python给了我dd: /dev/xbd2d: Device not configured.

1 个答案:

答案 0 :(得分:0)

检查变量周围的引号,并使用\“代替三引号解决了Eran建议的问题

import argparse
import os
import time

parser = argparse.ArgumentParser(description='basis')
parser.add_argument("-g", default=1, help="")
args = parser.parse_args()
volume = args.g
instance_ip=10.1.12.3
cmd_ssh="ssh -tt -i basis.pem root@"+str(instance_ip)+" \"date | dd of=/dev/xbd2d\""
os.system(cmd_ssh)