我有一个使用的paramiko一个Python代码。与SCP的paramiko,使用不同的远程和本地目录
#!/usr/bin/env python
import paramiko
username = ('user')
password = ('1234')
hostname = ('test-server.com')
ports = 22
localD = ('/var/tmp/testxxxxxxxx.tar.gz')
remoteD = ('/var/tmp/testxxxxxxxx.tar.gz')
paramiko.util.log_to_file('/tmp/paramiko.log')
transport = paramiko.Transport((hostname, ports))
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(remotepath=remoteD, localpath=localD)
sftp.close()
transport.close()
有了这个代码,与本地目录和远程目录应该是平等的。如果不是“找不到文件” 如何更改或使用与local-dir不同的另一个remote-dir? 例子:
localD = ('/var/tmp/testxxxxxxxx.tar.gz')
remoteD = ('/home/user/testxxxxxxxx.tar.gz')
谢谢
更改这些变量完全像你说的应该工作。 'sftp.put()'将'localD'路径中的本地文件复制到远程'remoteD'文件路径。我可能并不完全了解你想要什么,你能告诉我你做了什么,你期望什么以及你实际得到了什么? – KurzedMetal 2012-04-26 18:13:20
我试图使用SFTP来转院(本地)/ var/tmp中/文件1到(远程)/家庭/用户/转移/文件1 我收到此错误: OSERROR:[错误2]没有这样的文件或目录: “/var/tmp/pruebaxxxxxxxx.tar。GZ” 这个脚本只有在本地和远程目录都是平等的工作,像 (本地)/ var/tmp中/文件1到(远程)/ var/tmp中/文件1 – 2012-04-26 18:15:56
我知道你不必须有本地和远程相同,只是执行:'sftp.put(remotepath ='/ usr/jgaines2/foo.bar',localpath ='/ bin/edit.cmd')'工作得很好。 – 2012-04-26 19:17:38