paramiko之ssh登录,执行cmd,下载文件
一、paramiko远程登录及执行命令
1.1:exec_command(cmd)远程执行命令
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=strComputer, username=strUser, password=strPwd) stdin, stdout, stderr = client.exec_command('cd /usr/local')
res, err = stdout.read(), stderr.read()
result = res if res else err # 三元运算
print(result.decode()) stdin, stdout, stderr = client.exec_command('mkdir bb')
res, err = stdout.read(), stderr.read()
result = res if res else err # 三元运算
print(result.decode()) client.close()
print('Connection closed.')
执行结果:执行了mkdir bb命令,但是却没有在/usr/local下执行,说明在执行第二条cmd命令时,第一条cmd命令没起作用。
所以使用exec_command(cmd),前面一条命令并不会对后面的命令产生影响。

1.2:invoke_shell(cmd)远程执行命令
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(hostname=strComputer, username=strUser, password=strPwd) channel = client.invoke_shell()
channel.send('cd /usr/local\n')
time.sleep(3)
channel.send('mkdir aa\n')
channel.send('ifconfig\n')
time.sleep(0.1) # 这个延时必须要使用,要不然recv的内容中就不会含有ifconfig的内容
output=channel.recv(2024).decode('utf-8')
print(output) #Close the connection
client.close()
print('Connection closed.')
执行结果:执行了mkdir aa命令,并且在/usr/local/目录下生成。说明在执行下一条cmd时,上一条cmd已经生效,是以上一条cmd为前提才得到的结果。
在执行完cmd执行,一定要记得time.sleep()一下,要不然就不会得到最后一条cmd执行之后的效果。

二、远程下载文件
trans = paramiko.Transport((strComputer, port)) # 注意这里是元组
trans.connect(username=strUser, password=strPwd) ssh = paramiko.SSHClient()
ssh._transport = trans
stdin, stdout, stderr = ssh.exec_command('ifconfig')
res, err = stdout.read(), stderr.read()
result = res if res else err # 三元运算
print(result.decode()) file_name = time.strftime('%Y%m%d')+'.ucs'
#创建sftp对象
sftp = paramiko.SFTPClient.from_transport(trans)
sftp.get('/var/local/ucs/'+file_name, 'D:/backup/'+file_name) # 第一个参数是需要下载的文件 第二个参数是需要存储的文件
time.sleep(2)
trans.close()
paramiko之ssh登录,执行cmd,下载文件的更多相关文章
- python paramiko模拟ssh登录,实现sftp上传或者下载文件
Python Paramiko模块的安装与使用详解 paramiko是短链接,不是持续链接,只能执行你设定的shell命令,可以加分号执行两次命令. http://www.111cn.net/phpe ...
- cmd下载文件
进入cmd 输入ftp 192.168.1.200 然后按照提示输入用户名和密码 cd 进入要下载的目录 dir 看操作权限 lcd查看本地要装下载文件的目录 prompt关闭交互模式 mget da ...
- paramiko 实现ssh登录和sftp登录
简单ssh登录 import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddP ...
- SSH上传和下载文件
备个份: 一,ssh上传文件 scp file username@hostIP:文件地址 例: [zhangy@BlackGhost ~]$ scp test.sql zhangying@192.16 ...
- paramiko连接远程主机,上传下载文件
Paramiko是基于SSHv2协议实现的一个Python模块,提供客户端和服务器的功能.Paramiko本身是一个围绕SSH网络概念的纯Python接口. Client: # 创建一个SSH连接对象 ...
- shell.application asp多种组件执行cmd 单文件版本
<%@ Language="VBScript" %> <% ) theComponent() = "Scripting.FileSystemObject ...
- ssh scp 上传下载文件
scp username@servername:/path/filename 例如scp codinglog@192.168.0.101:/home/kimi/test.txt 把192.168. ...
- cmd 环境下载文件的几种方法
今天渗透测试面试提到cmd下载文件 ,自己只写了js和certutil,还有几种常见的方法自己没想起来 这里记录和总结下 . (自己还是太菜太垃圾.) 0x01 certutil certutil ...
- Spring MVC -- 下载文件
像图片或者HTML文件这样的静态资源,在浏览器中打开正确的URL即可下载,只要该资源是放在应用程序的目录下,或者放在应用程序目录的子目录下,而不是放在WEB-INF下,tomcat服务器就会将该资源发 ...
随机推荐
- 第四次OO总结
比较测试和正确性论证的效果 第13次作业是针对ALS电梯进行方法规格的测试,来判断方法运行的结果是否符合预期,是一种直观的验证错误的办法,但是不能确保程序完全正确,不过相比平时用的测试方法,这样效率更 ...
- 使用vmware vconverter从物理机迁移系统到虚拟机P2V(多图)
zhuan:https://segmentfault.com/a/1190000002697929 本文完整记录了如何从物理服务器,保持所有环境配置信息,纹丝不动的迁移到虚拟机上,俗称 P2V .采用 ...
- bzoj3110(整体二分)
#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #inclu ...
- karaf 控制台 常用linux指令(1)
0,切换命令当前域名 -bash代码 *:feature 命令是由域名+命令名组成的,切换当前域名,比如切换到*:feature,那么再输入list,则执行的是feature:list,切换到*:bu ...
- 28.TreeSet
与HashSet是基于HashMap实现一样,TreeSet同样是基于TreeMap实现的.在前一篇中详细讲解了TreeMap实现机制,如果客官详细看了这篇博文或者对TreeMap有比较详细的了解,那 ...
- Android逆向之静态分析
想必打过CTF的小伙伴多多少少都触过Android逆向,所以斗哥将给大家整一期关于Android逆向的静态分析与动态分析.本期先带来Android逆向的静态分析,包括逆向工具使用.文件说明.例题解析等 ...
- Android JNI 学习(十):String Operations Api & Other Apis
一.String Operations(字符串操作) 1. NewString jstring NewString(JNIEnv *env, const jchar *unicodeChars, js ...
- Java学习笔记二:数据类型II
GitHub代码练习地址:https://github.com/Neo-ML/JavaPractice/blob/master/Intpractice3.java 一 Java中的数据类型 Java ...
- IntelliJ IDEA 的使用方法总结
创建普通 Java 项目 1.首次新建一个项目 如果是首次使用,在这个界面可以点击 Create New Project ,创建一个新项目. 选择Java,然后选好 JDK 的位置,接着点击下一步 N ...
- java核心技术-(总结自杨晓峰-java核心技术36讲)
1. 谈谈你对java平台的理解 首先是java最显著的两个特性,一次写入处处运行:还有垃圾收集器gc,gc能够对java内存进行管理回收,程序员不需要关心内存的分配和回收问题 然后谈谈jre和jdk ...