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

จะคัดลอกไฟล์ไปยังเซิร์ฟเวอร์ระยะไกลใน Python โดยใช้ SCP หรือ SSH ได้อย่างไร


วิธีที่ง่ายที่สุดในการคัดลอกไฟล์จากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งผ่าน 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