我正在尝试将文件从我的本地linux机器scp到远程linux机器。 这是我正在尝试的代码
filename = '/tmp/myfile'
remotepath = '/tmp'
command = 'nodeattr'
sproc = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
server = sproc.communicate()
print "connecting to",server[0]
p = subprocess.Popen(["scp", filename, "root@"+server[0]+":"+remotepath])
sts = p.wait()
当我运行上述内容时,我收到如下错误
连接到abc.local
ssh:无法解析主机名abc.local:名称或服务未知 失去联系
但是,当我在命令行上执行ssh时,它允许我连接到远程主机abc.local
并且我没有问题。但是当我使用subprocess
时,我收到了此错误。
知道我是否以错误的方式使用子进程?
答案 0 :(得分:1)
注意" abc.local"之间的换行符。错误消息中的以下冒号:从第一个Popen返回的实际字符串是" abc.local \ n"。您需要.strip()
或以其他方式摆脱该换行符。