博客
关于我
paramiko:ssh服务
阅读量:646 次
发布时间:2019-03-15

本文共 1077 字,大约阅读时间需要 3 分钟。

paramiko:ssh服务

paramiko是一个提供远程连接服务器功能的python包。

安装

pip install paramiko

示例

import paramikoimport osssh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# ip 端口 用户名 密码ssh.connect('192.168.1.2', 22, 'llk', 'llk123')#print(os.getcwd()) # 输出的是本地的地址# 传输文件。本地如果是放到当前文件夹就不必前缀了sftp = ssh.open_sftp()# 上传,put(localPath, remotePath)#sftp.put('file1.txt', '/home/pxy/test.txt')# 下载,get(remotePath, localPath)sftp.get('/home/pxy/test.txt', 'test.txt')# 关闭下载sftp.close()# 普通命令cmd = "mkdir joy"# 获取输出。不然是看不到的stdin, stdout, stderr = ssh.exec_command(cmd)# stdout.read()是byte类型,必须指定编码才能转成strprint("stdout:" + str(stdout.read(), encoding='utf-8') + "\n")print("stderr:" + str(stderr.read(), encoding='utf-8') + "\n")# 关闭连接ssh.close()

注意

一串命令(几个连续的ssh_exec_command)其实是无效的。因为每次执行命令都是新开线程,可以考虑管道,例如cmd1 | cmd2

但是cmd1 必须有正确输出,而 cmd2 必须可以处理 cmd2 的输出结果;而且 cmd2 只能处理 cmd1 的正确输出结果,不能处理 cmd1 的错误信息。
例如下面是可以正确查找到所需行的:

stdin, stdout, stderr = ssh.exec_command('cat joy/test.txt|grep-i"this"')print(str(stdout.read(),encoding='utf-8'))print(str(stderr.read(),encoding='utf-8'))

转载地址:http://rnelz.baihongyu.com/

你可能感兴趣的文章
MaterialForm对tab页进行隐藏
查看>>
Member var and Static var.
查看>>
memcached高速缓存学习笔记001---memcached介绍和安装以及基本使用
查看>>
memcached高速缓存学习笔记003---利用JAVA程序操作memcached crud操作
查看>>
Memcached:Node.js 高性能缓存解决方案
查看>>
memcache、redis原理对比
查看>>
memset初始化高维数组为-1/0
查看>>
Metasploit CGI网关接口渗透测试实战
查看>>
Metasploit Web服务器渗透测试实战
查看>>
MFC模态对话框和非模态对话框
查看>>
Moment.js常见用法总结
查看>>
MongoDB出现Error parsing command line: unrecognised option ‘--fork‘ 的解决方法
查看>>
mxGraph改变图形大小重置overlay位置
查看>>
MongoDB可视化客户端管理工具之NoSQLbooster4mongo
查看>>
Mongodb学习总结(1)——常用NoSql数据库比较
查看>>
MongoDB学习笔记(8)--索引及优化索引
查看>>
mongodb定时备份数据库
查看>>
mppt算法详解-ChatGPT4o作答
查看>>
mpvue的使用(一)必要的开发环境
查看>>
MQ 重复消费如何解决?
查看>>