python通过ssh读写远程数据
1.适用场景
需要读取(写)多台远程机器下的一个或多个文件,如果要通过 os.system('scp ......')来完成就必须配置免密登陆,比较麻烦
2.准备工作,
安装依赖
pip install ssh2,
如未安装pip可以通过网页下载ssh2.zip文件然后通过动态加载
import os import imp os.system('unzip ssh2.zip') imp.load_package('ssh2','./ssh2')
3.具体操作方式,
import socket from odps import ODPS from ssh2.session import Session from datetime import date, timedelta, datetime from ssh2.sftp import LIBSSH2_FXF_READ, LIBSSH2_SFTP_S_IRUSR sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect((host, 22)) session = Session() session.handshake(sock) session.userauth_password(user, pwd) sftp = session.sftp_init() channel = session.open_session() channel.execute("cat demo'") channel.wait_eof() channel.close() channel.wait_closed() size, data = channel.read() files_str = unicode(data, 'utf-8') while size > 0: size, data = channel.read() files_str = files_str + unicode(data, 'utf-8') print files_str
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!