วิธีที่ง่ายที่สุดในการคัดลอกไฟล์จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งผ่าน ssh คือการใช้คำสั่ง scp สำหรับการเรียก scp คุณต้องมีโมดูลกระบวนการย่อย
ตัวอย่าง
import subprocess p = subprocess.Popen(["scp", "my_file.txt", "username@server:path"]) sts = os.waitpid(p.pid, 0)
คุณต้องใช้การเรียก waitpid เพื่อรอให้การคัดลอกเสร็จสมบูรณ์
อีกวิธีหนึ่งคือการเปิดการเชื่อมต่อ ssh และใช้โมดูล scp
ตัวอย่าง
from paramiko import SSHClient from scp import SCPClient ssh = SSHClient() ssh.load_system_host_keys() ssh.connect('user@server:path') with SCPClient(ssh.get_transport()) as scp: scp.put('my_file.txt', 'my_file.txt') # Copy my_file.txt to the server