本文主要介绍paramiko远程执行linux命令,及在服务器上进行文件的上传、下载

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。

由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等都可以支持

远程执行命令

def ssh_connect(host, username, passwd, *commands):
"""远程连接执行命令"""
import paramiko
try:
# flag = True
ssh = paramiko.SSHClient() # 建立一个ssh client对象
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 使用自动保存服务器的主机名和密钥信息的策略
ssh.load_system_host_keys() # 每次连线时都会检查host key 与纪录的 host key 是否相同
ssh.connect(hostname=host,
username=username,
password=passwd,
timeout=300) result = {}
for command in commands:
stdin, stdout, stderr = ssh.exec_command(command)
result[command] = stdout.read(), stderr.read() # 获取标准输出和标准错误输出的值
err_list = stderr.readlines()
if err_list:
print("ERROR: ",err_list[0])
exit(1)
break
ssh.close()
return result
except Exception as e:
print( 'ssh %s@%s: %s' % (username, host, e))

从服务器下载文件

def ssh_get_file(host, username, passwd, remotepath, localpath):
import paramiko
try:
ssh = paramiko.Transport(host) # 建立一个连接对象
ssh.connect(username=username,
password=passwd
) sftp = paramiko.SFTPClient.from_transport(ssh)
sftp.get(remotepath, localpath)
sftp.close()
except Exception as e:
print('Get data from %s@%s:%s, %s' % (username, host, remotepath, e))

上传文件到服务器

def ssh_upload_file(host, username, passwd, localpath, remotepath):
import paramiko
try:
ssh = paramiko.Transport(host) # 建立一个连接对象
ssh.connect(username=username,
password=passwd
) sftp = paramiko.SFTPClient.from_transport(ssh)
sftp.put(localpath, remotepath)
sftp.close()
except Exception as e:
print('Get data from %s@%s:%s, %s' % (username, host, localpath, e))

【Python】模块学习之使用paramiko连接Linux,远程执行命令,上传下载、文件的更多相关文章

  1. mac 下配置连接Linux服务器方法,上传下载文件操作

    1.先按照文档在本地生成SSHkey 2.mac输入 sudo -i 进入超级管理员#模式下,然后 创建用户 #useradd XXXadmin #passwd XXXadmin XXXadmin用户 ...

  2. [转]python3之paramiko模块(基于ssh连接进行远程登录服务器执行命令和上传下载文件的功能)

    转自:https://www.cnblogs.com/zhangxinqi/p/8372774.html 阅读目录 1.paramiko模块介绍 2.paramiko的使用方法 回到顶部 1.para ...

  3. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

  4. linux使用命令上传下载文件 -- lrzsz

    之前都是用Xftp工具在本地和linux系统之间上传下载文件,最近觉得麻烦,因为平时用Xshell连接,要传输文件的时候还要额外使用别的工具,下面是lrzsz的安装和简单的使用过程: 详细的使用可以s ...

  5. Linux 普通用户拿到root权限及使用szrz命令上传下载文件

    1.如何拿到root权限 在shell里如果看到你的命令输入行最前面显示的是 $符号,说明目前账号只有系统的普通权限. 输入:sudo su 这时能看到shell的输入行最前面已经显示的是#号,说明已 ...

  6. [Linux]非常方便的上传下载文件工具rz和sz

     linux上非常方便的上传下载文件工具rz和sz (本文适合linux入门的朋友) [一般用于SecureCRT ssh中使用] █ 法一:直接用yum安装lrzsz(推荐) yum insta ...

  7. Linux服务器使用XShell上传下载文件

    在学习Linux过程中,我们常常需要将本地文件上传到Linux主机上,这里简单记录下使用Xsheel工具进行文件传输 1:首先连接上一台Linux主机 2:输入rz命令,看是否已经安装了lrzsz,如 ...

  8. linux中使用lftp上传下载文件

    lftp是linux中一款ftp服务器相比windows中的ftp显得要复杂不少了,下面我来总结一下lftp文件上传,文件下载,及文件查找等等相关命令吧. lftp连接的几种方法,最常用的是lftp ...

  9. Spring学习---Spring中利用组件实现从FTP服务器上传/下载文件

    FtpUtil.java import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExcepti ...

随机推荐

  1. libx264 安卓编译

    https://github.com/RoyGuanyu/build-scripts-of-ffmpeg-x264-for-android-ndk/blob/master/ffmpeg/build_a ...

  2. 消息编解码Nanopb - protocol buffers

    Google Protocol Buffer 有各种版本的代码包,Python C/C++.JAVA.C.OBJ-C..NET等,嵌入式设备中使用的protobuf版本,我们选择的是nanoprobu ...

  3. macOS 上安装 PECL

    一.简介 PECL(The PHP Extension Community Library)是 PHP 扩展的存储库,为 PHP 所有的扩展提供提供托管和下载服务. 通过 PEAR(PHP Exten ...

  4. POJ1265:Area(多边形面积公式+pick公式) 好题

    题目:http://poj.org/problem?id=1265 题意 : 给你一个点阵,上边有很多点连成的多边形,让你求多边形内部的点和边界上的点以及多边形的面积,要注意他每次给出的点并不是点的横 ...

  5. Java CodeFormatter

    设置Formatter模板的入口: Window->Preference->Java->Code Style->Code Formatter <?xml version= ...

  6. vue——学习笔记

    1.vue需要在dom加载完成之后实现实例化 eg: window.onload = function(){ new Vue({ el: '#editor', data: { input: '# he ...

  7. Python(^^^^^小技巧^^^^^——不定期更新)

    偶然想到的小技巧 ''' 交互中对传入函数的参数的数目进行检测 ''' def func(a,b,c): print(a,b,c) s=input(">>>>:&qu ...

  8. centos7 vim显示行号

    CentOS7下可能有n个账户,让vim显示行号有两种方法:仅让当前用户显示行号和让所有用户显示行号   一.仅让当前用户显示行号 输入命令:vim ~/.vimrc 写入:set nu 保存:wq ...

  9. 88. Merge Sorted Array(从后向前复制)

    Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note:Yo ...

  10. hdu3518 Boring counting

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=3518 题目: Boring counting Time Limit: 2000/1000 MS ...