python 远程执行命令、上传、下载举例

 

使用python中的 paramiko 实现远程操作,需要安装 paramiko 模块。

# vi pssh.py

#!/usr/bin/python
#coding=utf-8

'''
Created on Apr 13, 2016

@author: root
'''

import paramiko


class PSSH():
    
    
    def __init__(self,ip,sort,username,password):
        
        self.ip = ip
        self.sort = sort
        self.username = username
        self.passwrod = password

        
    def exec_cmd(self,cmd):
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        #ssh.connect(hostname, port, username, password, pkey, key_filename, timeout, allow_agent, look_for_keys, compress, sock)
        ssh.connect(self.ip,self.sort,self.username,self.passwrod)
        stdin,stdout,stderr = ssh.exec_command(cmd)
        print stdout.readlines()
        ssh.close()

    
    def upfile(self,localpath,remotepath):
        '''
        '''
        t = paramiko.Transport((self.ip,self.sort))
        t.connect(username= self.username,password=self.passwrod)
        sftp = paramiko.SFTPClient.from_transport(t)
        sftp.put(localpath,remotepath)
        t.close()
        
        
    def downfile(self,remotepath,localpath):
        '''
        '''
        t = paramiko.Transport((self.ip,self.sort))
        t.connect(username= self.username,password=self.passwrod)
        sftp = paramiko.SFTPClient.from_transport(t)
        sftp.get(remotepath,localpath)
        t.close()
        
        


if __name__ == '__main__':

    pssh = PSSH("192.168.1.77",22,"oracle","oracle");
   # pssh.exec_cmd("cat /tmp/a.txt")
    #pssh.upfile("/tmp/1.txt", "/tmp/1.txt")
    pssh.downfile("/tmp/a.txt", "/tmp/a.txt")
    
    print '------success!-----'
    

测试下载功能

# chmod +x pssh.py 
# ./pssh.py 
------success!-----
# ll | grep a.txt 
-rw-r--r--. 1 root   root          4 Apr 13 10:16 a.txt

 

posted @ 2016-04-13 10:22  方诚  阅读(818)  评论(0编辑  收藏  举报