سؤال

كيف يمكنني نقل SFTP من خلال SSHClient على الخادم البعيد؟ لدي مضيف محلي ومضيفين عن بعد. المضيفين عن بُعد هم خادم النسخ الاحتياطي وخادم الويب. أحتاج إلى العثور على ملف النسخ الاحتياطي على خادم النسخ الاحتياطي ووضعه على خادم الويب عبر SFTP. كيف يمكنني عمل نقل SFTP الخاص بـ Paramiko مع Paramiko's SSHClient?

هل كانت مفيدة؟

المحلول

paramiko.SFTPClient

استخدام العينة:

import paramiko
paramiko.util.log_to_file("paramiko.log")

# Open a transport
host,port = "example.com",22
transport = paramiko.Transport((host,port))

# Auth    
username,password = "bar","foo"
transport.connect(None,username,password)

# Go!    
sftp = paramiko.SFTPClient.from_transport(transport)

# Download
filepath = "/etc/passwd"
localpath = "/home/remotepasswd"
sftp.get(filepath,localpath)

# Upload
filepath = "/home/foo.jpg"
localpath = "/home/pony.jpg"
sftp.put(localpath,filepath)

# Close
if sftp: sftp.close()
if transport: transport.close()

نصائح أخرى

إذا كان لديك sshclient ، فيمكنك أيضًا استخدامها get_transpost(), ، واستخدم طريقة leoluk:

import paramiko


# lets say you have SSH client...
client = paramiko.SSHClient()

sftp = client.open_sftp()

# then you can use upload & download as shown above
...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top