ssh 在终端中工作,但不能通过 Python



我正在尝试使用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.

检查变量周围的引号并使用 \" 而不是三引号解决了我的问题,正如 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)

相关内容

最新更新