本文主要介绍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. 如何理解PHP的单例模式

    单例模式就是让类的一个对象成为系统中的唯一实例,避免大量的 new 操作消耗的资源. PHP的单例模式实现要求: 1.一个private的__construct是必须的,单例类不能在其它类中实例化,只 ...

  2. Spark机器学习系列之13: 支持向量机SVM

    Spark 优缺点分析 以下翻译自Scikit. The advantages of support vector machines are: (1)Effective in high dimensi ...

  3. 重新编写equals()方法,hashCode()方法,以及toString(),提供自定义的相等标准,以及自描述方法

    下面给出一个实例,重新编写equals()方法,提供自定义的相等标准 public class PersonTest { public static void main(String[] args) ...

  4. 【基础算法】- 个人认为最快的 Fibonacci 程序

    public class Fibonacci { private static Map<Long,Long> map = new HashMap<Long,Long>(); s ...

  5. matplotlib绘制饼状图

    源自http://blog.csdn.net/skyli114/article/details/77508430?ticket=ST-41707-PzNbUDGt6R5KYl3TkWDg-passpo ...

  6. Linux系统——ACL权限控制及特殊权限

    ACL权限控制 ACL(access control list),可以提供除属主.属组.其他人的rwx权限之外的细节权限设定 ACL的权限控制 (1)User 使用者 (2)Group 群组 (3)M ...

  7. 数据库(11)-- Hash索引和BTree索引 的区别

    索引是帮助mysql获取数据的数据结构.最常见的索引是Btree索引和Hash索引. 不同的引擎对于索引有不同的支持:Innodb和MyISAM默认的索引是Btree索引:而Mermory默认的索引是 ...

  8. 51Nod 1079

    题目大意: 一个正整数K,给出K Mod一些质数的结果,求符合条件的最小的K.例如,K%2=1,K%3=2,K%5=3符合条件的最小的K=23. Input 第1行:1个数N表示后面输入的质数及模的数 ...

  9. 数据库中的B树和B+树

    B树与B+树 数据库中建立索引能加快数据的存取,但是当索引变得很大时,可能导致内存装不下.这时就需要使用多级索引来实现.而B树和B+树是实现多级索引的一种数据结构. B树 B树是多叉树,其树中每个节点 ...

  10. qq第三方登录网站接口

    网站如何实现QQ登录功能 | 浏览:11029 | 更新:2013-12-05 10:09 1 2 3 4 5 6 7 分步阅读 一键约师傅 百度师傅为你的电脑系统,选一个靠谱师傅! 如果想让网站实现 ...