sshclient من paramiko مع SFTP
سؤال
كيف يمكنني نقل SFTP من خلال SSHClient
على الخادم البعيد؟ لدي مضيف محلي ومضيفين عن بعد. المضيفين عن بُعد هم خادم النسخ الاحتياطي وخادم الويب. أحتاج إلى العثور على ملف النسخ الاحتياطي على خادم النسخ الاحتياطي ووضعه على خادم الويب عبر SFTP. كيف يمكنني عمل نقل SFTP الخاص بـ Paramiko مع Paramiko's SSHClient
?
المحلول
استخدام العينة:
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
...
لا تنتمي إلى StackOverflow