2016-12-14 83 views
0

我想從我的本地linux機器scp文件到遠程linux機器。 這裏是我努力Python代碼scp文件失敗,名稱解析問題

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, "[email protected]"+server[0]+":"+remotepath]) 
sts = p.wait() 

代碼當我運行上面,我得到一個錯誤,如下

連接到abc.local

SSH:無法解析主機名ABC .local:名稱或服務未知
丟失連接

但是,當我在命令行上執行ssh,它允許我連接到遠程主機abc.local,我沒有問題。但是當我使用subprocess時,出現此錯誤。

任何想法,如果我用錯誤的方式使用子進程?

回答

1

注意「abc.local」和錯誤信息中的下列冒號之間的換行符:從第一個Popen返回的實際字符串是「abc.local \ n」。您需要.strip()或以其他方式擺脫該換行符。