【发布时间】:2020-08-31 22:41:52
【问题描述】:
我正在本地机器上运行一个 python 脚本 - ssh.py 来将文件和目录从一个远程服务器 (ip = 35.189.168.20) 传输到另一台远程服务器 (ip = 10.243.96.94)
这是我的代码的样子:
HOST = "35.189.168.207"
USER = "sovith"
PASS = "xxx"
destHost = "10.243.96.94"
destUser = "root"
destPass = "xxx"
#SSH Connection
client1=paramiko.SSHClient()
client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client1.connect(HOST,username=USER,password=PASS)
#SFTP inside SSH server connection
with pysftp.Connection(host=destHost, username=destUser, password=destPass) as sftp:
#put build directory - sftp.put_r(source, destination)
sftp.put_r('/home/sovith/build' , '/var/tmp')
sftp.close()
client1.close()
让我告诉你所有目录路径和一切都是正确的。我只是觉得代码内部存在一些逻辑错误。执行后我得到的输出是:
Traceback (most recent call last):
File "ssh.py", line 108, in <module>
func()
File "ssh.py", line 99, in func
sftp.put_r('/home/sovith/nfmbuild' , '/var/tmp')
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/pysftp/__init__.py", line 427, in put_r
os.chdir(localpath)
FileNotFoundError: [Errno 2] No such file or directory: '/home/sovith/build'
您能否纠正我的代码中的错误或建议任何更好的方法来完成任务。简单来说,我想要一个脚本在两个远程服务器之间复制文件和目录。
【问题讨论】:
标签: python ssh sftp paramiko pysftp