2013-04-24 54 views
0

我試圖將一些文件夾複製到在Linux上運行的遠程機器。下面是我使用的代碼,我不知道有什麼需要添加的副本發生使用paramiko將文件夾傳輸到遠程機器

import paramiko 

ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(
    paramiko.AutoAddPolicy()) 
ssh.connect('xxx.xxx.xx.xx', username='root', 
    password='xxxxxxx') 
#scp -r /mnt/hgfs/windows-D-drive/Testing/ [email protected]:/home # equivalent code here 
+0

基本上我需要傳輸目錄 - (與子目錄)窗體/ linux機器到通過python在Linux上運行的遠程機器 – user2190483 2013-04-25 03:57:29

回答

1

最簡單的方法在這裏是要壓縮的文件,並使用sftp.put放置遠程計算機並提取該文件它通過遠程機器:

tar = tarfile.open("Tests.tar.gz", "w:gz") 
path_me = os.path.dirname(os.path.realpath(sys.argv[0])) 
tar.add(path_me, arcname="Tests") 
tar.close() 

transport = paramiko.Transport((SERVER_IP, 22)) 
transport.connect(username = 'root', password = 'xxxxx') 

sftp = paramiko.SFTPClient.from_transport(transport) 
remotepath='/home/Tests.tar.gz' 
localpath=os.path.join(path_me+"/Tests.tar.gz") 
#print(localpath) 
sftp.put(localpath, remotepath) 
sftp.close() 
transport.close() 

ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect(SERVER_IP, username='root', password='philips') 
stdin, stdout, stderr = ssh.exec_command("tar -C /home -xzf /home/Tests.tar.gz") 
相關問題