2010-09-03 9 views
31

के साथ paramiko sshclient रिमोट सर्वर पर एसएसएच क्लाइंट के माध्यम से मैं एसएफटीपी परिवहन कैसे बना सकता हूं? मेरे पास एक स्थानीय मेजबान और दो दूरस्थ मेजबान हैं। रिमोट होस्ट बैकअप सर्वर और वेब सर्वर हैं। मुझे बैकअप सर्वर आवश्यक बैकअप फ़ाइल पर खोजने और इसे sftp पर वेब सर्वर पर रखने की आवश्यकता है। मैं paramiko के एसएसएचटीपी के साथ परमिको के एसएफटीपी परिवहन काम कैसे कर सकता हूं?एसपीटीपी

उत्तर

97

paramiko.SFTPClient

उदाहरण:

import paramiko 
paramiko.util.log_to_file('/tmp/paramiko.log') 

# Open a transport 

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

# Auth 

password = "foo" 
username = "bar" 
transport.connect(username = username, password = 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 

sftp.close() 
transport.close() 
+0

यह सही है, लेकिन वेब या बैकअप करने के लिए अपने स्थानीय होस्ट से इस मूल्य बना परिवहन। मुझे बैकअप से वेब पर sftp की आवश्यकता है और मैं अपने लोकहोस्ट से स्क्रिप्ट शुरू कर रहा हूं। बॉट को ऐसा करना चाहिए: "ssh [email protected]; scp backup.file [email protected]:/home/admin/tmp"। मैं कैसे समझता हूं कि एसपीपी paramiko लाइब्रेरी द्वारा समर्थित नहीं है, लेकिन यह sftp का समर्थन करता है और मैं दूरस्थ सर्वर से दूरस्थ सर्वर से sftp सुरंग बनाना चाहता हूँ? मेरे लोकहोस्ट से नहीं। – Denis

+0

अब एक एसपीपी प्रत्यारोपण है जो paramiko का उपयोग करता है https://github.com/jbardin/scp.py – lxx

+3

एससीपी और एसएफटीपी समान नहीं हैं! – leoluk