Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ใช้โมดูล Python ผ่าน Paramiko (SSH)

SSH ให้แค่ Remote Shell ไม่สามารถเรียกฟังก์ชัน/โมดูล Python บนเครื่อง Remote ได้โดยตรง

วิธีแก้: รันสคริปต์บน Remote แล้วอ่านผลลัพธ์

  1. เขียนสคริปต์ Python บนเครื่อง Remote
  2. ใช้ Paramiko Exec Command เรียกสคริปต์นั้น
  3. อ่านผลจาก stdout หรือเขียนไฟล์แล้วอ่านไฟล์กลับ

ตัวอย่างแนวคิด

import paramiko
ssh = paramiko.SSHClient()
ssh.connect(host, username=user, password=pass)
stdin, stdout, stderr = ssh.exec_command('python3 /remote/script.py')
result = stdout.read().decode()
print(result)

ทางเลือก: ใช้ Pyro (Python Remote Objects)

Pyro4 ช่วยให้ Object ใน Process หนึ่ง เรียก Method ของ Object ใน Process อีกตัว (แม้บนเครื่องต่างเครื่อง) ได้เหมือน Local Call

  • รองรับ Parameter/Return Type เกือบทุกอย่าง
  • จัดการ Network/Serialization ให้อัตโนมัติ
  • เหมาะสำหรับ Distributed Application