【发布时间】:2020-02-17 17:52:11
【问题描述】:
我正在尝试使用 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.
【问题讨论】:
-
大概
instance_ip应该是一个字符串(因为它是一个语法错误)。您是否也尝试过使用subprocess.Popen而不是os.system。如果需要,使用shell=True。 -
好的@Eran,我没有尝试过subprocess.Popen,所以我会马上做。但我确实尝试了标准的 Popen,它也给出了错误
-
仍然遇到与 subprocess.Popen @Eran 相同的错误
-
正如@Eran 所说,由于IP 地址周围缺少引号,您显示的代码可能无法运行。请确保您发布的代码是可运行的并且实际演示了问题。