2010-09-03 19 views
31

SFTP aktarımı SSHClient'i uzak sunucuda nasıl yapabilirim? Yerel bir ana bilgisayarım ve iki uzak ana bilgisayarım var. Uzak ana bilgisayarlar yedekleme sunucusu ve web sunucusu. Yedekleme sunucusunda gerekli yedekleme dosyasını bulmalı ve sftp üzerinden web sunucusuna koymalıyım. Paramiko'nun SFTP taşımacılığını paramiko SSHClient ile nasıl yapabilirim?paramiko sshclient, sftp ile

cevap

97

paramiko.SFTPClient

Örnek:

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

doğru şu, ancak web veya yedek benim localhost'tan bu creat ulaşım. Yedeklemeden web'e kadar sftp'ye ihtiyacım var ve ben de localhost'umdan komut dosyası başlatıyorum. Bot şöyle yapmalı: "ssh [email protected]; scp backup.file [email protected]:/home/admin/tmp". Scp'nin paramiko kütüphanesi tarafından nasıl desteklenmediğini anlayabiliyorum, ama sftp'yi destekliyor ve uzak sunucudan uzak sunucuya sftp tüneli yapmak istiyorum? localhost'umdan değil. – Denis

+0

Artık paramiko kullanan bir scp implmentasyonu var https://github.com/jbardin/scp.py – lxx

+3

SCP ve SFTP aynı değil! – leoluk

İlgili konular