Python之远程控制库paramiko

一、paramiko简介

Paramiko是一个用于建立SSH2连接(客户端或服务器)的库。重点是使用SSH2作为SSL的替代方案,在python脚本之间建立安全连接。支持所有主要的密码和哈希方法。SFTP客户端和服务器模式也都支持。作者在平时主要用其作为对服务器端的文件和目录的下载和上传操作使用,当然Paramiko也可以远程执行服务器端命令,并返回执行结果。

二、下载安装
pip3 install paramiko 
三、代码实现

1、从服务器端下载文件到本地

import paramiko
#下载文件
def download_file(remoteFile,loaclFile):
    # 实例化一个transport对象
    trans = paramiko.Transport(('192.195.x.xxx', 22))
    # 建立连接
    trans.connect(username='user', password='passwd')
    # 实例化一个 sftp对象,指定连接的通道
    sftp = paramiko.SFTPClient.from_transport(trans)
    # 下载文件
    sftp.get(remotepath=remoteFile, localpath=loaclFile)
    trans.close()

2、从本地上传文件到服务器

import paramiko
#上传文件
def upload_file(loaclFile,remoteFile):
    # 实例化一个transport对象
    trans = paramiko.Transport(('192.195.x.xxx', 22))
    # 建立连接
    trans.connect(username='user', password='passwd')
    # 实例化一个 sftp对象,指定连接的通道
    sftp = paramiko.SFTPClient.from_transport(trans)
    # 上传文件
    sftp.put(localpath=loaclFile, remotepath=remoteFile)
    trans.close()

3、从服务器端下载目录到本地

import paramiko
import re
#下载文件夹
def download_dir(remote_dirPath, loacl_dirPath, type):
    #如果本地目录不存在就创建
    if not os.path.exists(loacl_dirPath):
        os.mkdir(loacl_dirPath)
    reg = r'^\..*'
    # 实例化一个transport对象
    trans = paramiko.Transport(('192.195.x.xxx', 22))
    # 建立连接
    trans.connect(username='user', password='passwd')
    # 实例化一个 sftp对象,指定连接的通道
    sftp = paramiko.SFTPClient.from_transport(trans)
    # 获取目录结构
    file_list = sftp.listdir(remote_dirPath)
    print('待下载的目录结构:',file_list)
    for file in file_list:
        if type not in file:
            continue
        #过滤隐藏文件
        if re.match(reg, file):
            continue
        # 下载文件
        sftp.get(remotepath=remote_dirPath+'/'+file, localpath=loacl_dirPath+'/'+file)
    trans.close()

4、从本地上传目录到服务器

import paramiko
import re
#上传文件夹
def upload_dir(loacl_dirPath, remote_dirPath):
    reg = r'^\..*'
    # 实例化一个transport对象
    trans = paramiko.Transport(('192.195.x.xxx', 22))
    # 建立连接
    trans.connect(username='user', password='passwd')
    # 实例化一个 sftp对象,指定连接的通道
    sftp = paramiko.SFTPClient.from_transport(trans)
    # 获取目录结构
    file_list = os.listdir(loacl_dirPath)
    print('待上传的目录结构:',file_list)
    for file in file_list:
        # 过滤隐藏文件
        if re.match(reg, file):
            continue
        # 上传文件
        sftp.put(localpath=loacl_dirPath + '/' + file, remotepath=remote_dirPath + '/' + file)
    trans.close()

5、连接远程服务器并执行基本命令

import paramiko
#执行命令
def exec_command():
    ssh = paramiko.SSHClient()
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh.connect(hostname='192.195.x.xxx',username='user',password='passwd',port=22)
    stdin, stdout, stderror = ssh.exec_command('df -h')
    print(stdout.read().decode())
    ssh.close()

在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本系列课程为Python实战系列课程:使用微信控制电脑,使用Python的Web框架Flask搭建网页, 并使用网页控制电脑;使用wxPython编写图形化的程序,并进一步将这个程序发展为远程控制程序。 课程目录: |--|----|----1 微信远控:Python 控制电脑的两种方法 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 命令提示符 CMD 入门.mp4 |--|----|----|----3 Python 执行 CMD 命令.mp4 |--|----|----|----4 Python 调用 Win API.mp4 |--|----|----2 微信远控:让微信控制电脑 |--|----|----|----1 微信控制电脑原理.mp4 |--|----|----|----2 新浪邮箱的设定.mp4 |--|----|----|----3 Python 收发邮件.mp4 |--|----|----|----4 微信控制电脑的实现.mp4 |--|----|----|----5 沙盘化的微信远控.mp4 |--|----|----3 Flask 快速搭建网站 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 Flask 与 BootStrap 搭建网页.mp4 |--|----|----|----3 Flask 操作数据.mp4 |--|----|----4 网页控制电脑 |--|----|----|----1 课程介绍.mp4 |--|----|----|----2 建立通信.mp4 |--|----|----|----3 轮询与推送.mp4 |--|----|----|----4 网页控制电脑.mp4 |--|----|----5 Python 图形程序入门 |--|----|----|----1 wxPython 介绍与安装.mp4 |--|----|----|----2 基本控件介绍与绝对布局.mp4 |--|----|----|----3 控件相对布局.mp4 |--|----|----|----4 多线程与事件.mp4 |--|----|----6 编写图形界面的远程控制程序 |--|----|----|----1 远程控制程序的需求分析.mp4 |--|----|----|----2 Socket 通信.mp4 |--|----|----|----3 受控端功能强化.mp4 |--|----|----|----4 远程控制软件的实现与测试.mp4 |--|----|----7 开发远程控制程序高级功能 |--|----|----|----1 高级功能概述.mp4 |--|----|----|----2 读写剪贴板.mp4 |--|----|----|----3 使用 Python 截图.mp4 |--|----|----|----4 Python 上传文件.mp4 |--|----|----|----5 结课总结.mp4

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员唐丁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值