2010-09-03 16 views
31

Wie kann ich SFTP-Transport durch SSHClient auf dem Remote-Server machen? Ich habe einen lokalen Host und zwei Remote-Hosts. Remote-Hosts sind Backup-Server und Webserver. Ich muss auf dem Sicherungsserver die notwendige Sicherungsdatei finden und sie über sftp auf den Webserver stellen. Wie kann ich paramikos SFTP-Transport mit Paramikos SSHClient arbeiten?paramiko sshclient mit sftp

Antwort

97

paramiko.SFTPClient

Beispiel:

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

das ist richtig, aber der creat Transport von meinem localhost auf dem Web-oder Backup. Ich brauche sftp von Backup zu Web und ich starte Skript von meinem localhost. Bot muss so vorgehen: "ssh [email protected]; scp backup.file [email protected]:/home/admin/tmp". Wie ich verstehe, scp isnt Unterstützung von Paramiko Bibliothek, aber es unterstützt sftp und ich möchte sftp Tunnel von Remote-Server auf Remote-Server machen? nicht von meinem localhost. – Denis

+0

Es gibt jetzt eine scp implmentation, die paramiko verwendet https://github.com/jbardin/scp.py – lxx

+3

SCP und SFTP sind nicht das Gleiche! – leoluk