pamamiko的学习笔记
pamamiko的学习笔记
Paramiko包含两个核心组件,一个为SSHClient类,另一个为SFTPClient类,
一,paramiko的连接有两种方式,一种是通过paramiko.SSHClient()函数,另外一种是通过paramiko.Transport()函数
【SSHClient类】
该类封装了传输,通道,及SFTPClient的校验,建立方法,通常用于执行远程命令,
client=paramiko.SSHClient()
client.load_system_host_keys()
client.connect('172.25.254.1')
stdin,stdout,stderr=client.exec_command('ls -l')
如果设置链接的远程主机没有本地主机密钥,需要添加一下
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
【SFTPClient类】
1)from_transport方法:
创建一个已连通的SFTP客户端通道,
例子说明:
t=paramiko.Transport("172.25.254.1")
t.connect(username="root",password="redhat")
sftp=paramiko.SFTPClient.from_transport(t)
put:上传本地文件:
get:下载远程文件到本地
mkdir :在服务端创建目录
remove:删除服务端目录
使用密码的方式登录
[root@desktop0 420]# cat c.py
#!/usr/bin/env python
#coding=utf8
import paramiko
hostname='172.25.254.1'
port=22
username='root'
password='redhat'
#创建SSH连接日志(只保留前一次的详细日志,以前的日志会被覆盖)
paramiko.util.log_to_file('paramiko.log')
s=paramiko.SSHClient()
s.load_system_host_keys()#读取know_host
#s.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 如果没有在know_host文件里自动加进去
s.connect(hostname,port,username,password)
stdin,stdout,stderr=s.exec_command('df -h')#执行命令
print stdout.read()
s.close()
运行结果:
[root@desktop0 420]# python c.py
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 6.7G 2.0G 4.4G 32% /
tmpfs 246M 0 246M 0% /dev/shm
/dev/vda1 485M 34M 426M 8% /boot
使用证书的方式登录:
做一个key认证,把公钥拷贝给远程主机。
#!/usr/bin/env python
import paramiko
hostname='172.25.254.1'
port=22
username='root'
key_file='/root/.ssh/id_rsa'
key=paramiko.RSAKey.from_private_key_file(key_file)
s=paramiko.SSHClient()
s.load_system_host_keys()
s.connect(hostname,port,username,pkey=key)
stdin,stdout,stderr=s.exec_command('df -h')
print stdout.read()
print stderr.read()
s.close()
实现单个文件的上传下载
[root@desktop0 420]# cat 1.py
#!/usr/bin/env python
import paramiko
scp=paramiko.Transport(('172.25.254.1',22))
scp.connect(username='root',password='redhat')
sftp=paramiko.SFTPClient.from_transport(scp) #创建一个sftp客户端对象,通过ssh transport操作远程文件;
sftp.get('/mnt/406/kk.sh','/mnt/file')
sftp.put('/mnt/mysql.py','/mnt/mimi')
scp.close()
一个目录下多个文件上传下载示例:
[root@desktop0 420]# cat 2.py
#!/usr/bin/env python
#coding=utf8
import paramiko
import datetime
import os
hostname='172.25.254.1'
username='root'
password='redhat'
port=22
当本地没有mimi目录时会报错
local_dir='/mnt/mimi/'
remote_dir='/mnt/406/'
t=paramiko.Transport((hostname,port))
t.connect(username=username,password=password)
sftp=paramiko.SFTPClient.from_transport(t)
files=sftp.listdir(remote_dir)
for f in files:
print '################################'
print 'beginning to download file from %s %s'%(hostname,datetime.datetime.now())
print 'downloading file',os.path.join(remote_dir)
sftp.get(os.path.join(remote_dir,f),os.path.join(local_dir,f))
print ''
print '#####################################'
t.close()
注意:当下载或上传单个远程文件的时候要指定文件下载到本地的文件名,不能指定目录。否则会报错
pamamiko的学习笔记的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
- HTML学习笔记
HTML学习笔记 2016年12月15日整理 Chapter1 URL(scheme://host.domain:port/path/filename) scheme: 定义因特网服务的类型,常见的为 ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
随机推荐
- 从Docker在Linux和Windows下的区别简单理解Docker的层次结构
上篇文章我们成功在Windows下安装了Docker,输出了一个简单的Hello World程序.本文中我们将利用Docker已有的云端镜像training/webapp来发布一个简单Python的W ...
- 阶段3 3.SpringMVC·_06.异常处理及拦截器_4 SpringMVC拦截器之介绍和搭建环境
拦截器可以有多个 搭建环境 不用改,直接finish 复制原来项目的 依赖的包也复制过来 web.xml配置前端控制器 springmvc的配置文件 先创建对应的文件夹 分别创建java和resour ...
- 八十六:redis之RDB和AOF两种数据持久化机制
详见:http://redisdoc.com/persistence/index.html redis.conf RDB机制 改为5秒内1次 文件已生成 关闭RDB,注释掉3个save,重启redis ...
- IntelliJ IDEA 设置检查 serialVersionUID
IntelliJ IDEA 设置检查 serialVersionUID 背景介绍 我们在使用IntelliJ IDEA创建Java类的时候,有时候需要实现序列化接口 implements Serial ...
- RESTful 介绍
什么是RESTful?一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务端交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. ...
- SQLServer 断开数据库连接
数据库名:test1 1. 查询数据库当前连接 select * from master.sys.sysprocesses where dbid = db_id('test1') 2. 断开指定连接 ...
- Matlab中的eig函数和Opecv中eigen()函数的区别
奇异值分解的理论参见下面的链接 http://www.cnblogs.com/pinard/p/6251584.html https://blog.csdn.net/shenziheng1/artic ...
- 【AMAD】beaker -- 用于session和缓存的WSGI中间件
简介 动机 作用 个人评分 简介 Beaker1是一个web session和通用缓存库,并且包含一个WSGI中间件可以用于你的web应用. 动机 Beaker是基于MyghtyUtils2(一个古老 ...
- windows 装mac
必备条件: 1.vmware虚拟机 2.给相应版本虚拟机打mac补丁 3.用securable检测CPU支持虚拟化设置 4.mac镜像文件 5.这时候还不能启动虚拟机,还需要在引导文件里面进行参数修改 ...
- Oracle-DDL 3- 触发器
DDL-数据定义语句: 四.触发器 -- 触发器(trigger),与某些特定的操作绑定,当达到触发条件后会自动触发--主要用来将某些操作的过程记录下来,或者阻止某些非法的操作,保护数据 /*触发条件 ...