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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM