我正在尝试从我的网络服务器中提取文件,并希望使用python执行此操作。我有下面的命令,它将远程机器上的文件发送出去并将它们全部拉回到本地机器上。我用os.system手动执行此操作,它会提示我输入密码。我输入它然后拉出文件。无论如何从os.system检测密码提示或者如果我使用pexpect我检测到密码提示并输入它但文件不会被复制。有什么想法吗?
ssh user1@myserver 'tar -cvf - -C /usr/home/user1 .' | tar -xvf -
username = "user1"
servername = "myserver"
mypath = "/usr/home/user1"
import os
os.system("ssh user1@myserver 'tar -cvf - -C /usr/home/user1 .' | tar -xvf -")
user1@myserver's password:
答案 0 :(得分:0)
您应该可以将ssh配置为连接而无需输入密码,例如参见:http://web.archive.org/web/20160404025901/http://jaybyjayfresh.com/2009/02/04/logging-in-without-a-password-certificates-ssh/
注意,您也可以使用scp递归复制整个文件夹:
boolean folder = new java.io.File("//XX.X.X.XX/home/EBook").mkdirs();
scp -rp sourcedirectory user@dest:/path
表示递归
-r
表示保留属性