สำหรับไฟล์เดียวแทนที่จะใช้ SFTP คุณสามารถไพพ์ไฟล์ผ่าน ssh โดยใช้cat
หรือpv
ที่ด้านการส่งและใช้tee
บนเซิร์ฟเวอร์กลางเพื่อส่งข้อมูลไปยังไฟล์ที่นั่นและส่งสำเนาไปที่ลิงค์ ssh อีกด้านหนึ่ง เพียงแค่เขียนข้อมูลลงในไฟล์ วูดูต้องใช้ฉันจะออกจากการออกกำลังกายสำหรับผู้อ่านเนื่องจากฉันไม่มีเวลาเล่นตอนนี้ (ขออภัย) วิธีนี้จะใช้ได้ต่อเมื่อปลายทางที่สองนั้นสามารถเข้าถึงได้แบบสาธารณะผ่าน SSH ซึ่งอาจไม่ใช่กรณีที่คุณอธิบายว่าเป็นเครื่องไคลเอนต์
อีกวิธีหนึ่งซึ่งน้อยกว่า "เรียกใช้และรอ" แต่อาจจะง่ายกว่านั้นคือใช้rsync
ระหว่างเซิร์ฟเวอร์และไคลเอนต์ B ในครั้งแรกที่คุณเรียกใช้งานนี้อาจได้รับสำเนาบางส่วนของข้อมูล แต่คุณสามารถเรียกใช้ซ้ำได้ เพื่อรับข้อมูลเพิ่มเติมในภายหลัง (ด้วยการเรียกใช้ครั้งสุดท้ายครั้งเดียวเมื่อ Client1-> การถ่ายโอนเซิร์ฟเวอร์เสร็จสมบูรณ์) วิธีนี้จะใช้งานได้หากเซิร์ฟเวอร์ส่งข้อมูลโดยตรงไปยังชื่อไฟล์ที่ถูกต้องระหว่างการถ่ายโอน SFTP (บางครั้งคุณจะเห็นข้อมูลที่เข้าสู่ไฟล์ชั่วคราวซึ่งจะถูกเปลี่ยนชื่อเมื่อโอนไฟล์เสร็จแล้ว - เพื่อทำการ อัปเดตไฟล์มากขึ้น แต่จะทำให้แนวคิด rsync ใช้งานไม่ได้) คุณสามารถใช้ rsync สำหรับการถ่ายโอน C1-> S แทน scp (ถ้าคุณใช้--inplace
ตัวเลือกเพื่อหลีกเลี่ยงปัญหาที่กล่าวถึงข้างต้น) - การใช้ rsync จะช่วยป้องกันไม่ให้ส่งทุกอย่างถ้าการเชื่อมต่อเซิร์ฟเวอร์ C1-> ประสบปัญหาระหว่างการถ่ายโอนขนาดใหญ่ (ฉันมักจะใช้rsync --inplace -a --progress <source> <dest>
แทน scp / sftp เมื่อ rsync พร้อมใช้งานสำหรับ พฤติกรรม "transfer resume" นี้)
เพื่อสรุปข้างต้นให้เรียกใช้:
rsync --inplace -a --progress <source> user@server:/<destination_file_or_folder>
บน client1 จากนั้นทำงาน
rsync --inplace -a --progress user@server:/<destination_file_or_folder> <destination_on_cli2>
บน client2 ซ้ำ ๆ จนกระทั่งการถ่ายโอนครั้งแรกเสร็จสมบูรณ์ (จากนั้นทำงานอีกครั้งเพื่อให้แน่ใจว่าคุณมีทุกอย่างแล้ว) rsync
ทำได้ดีมากในการถ่ายโอนขั้นต่ำที่จำเป็นต้องอัปเดตสถานที่แทนการถ่ายโอนล็อตทั้งหมดในแต่ละครั้ง สำหรับความหวาดระแวงคุณอาจต้องการเพิ่ม--checksum
ตัวเลือกในคำสั่ง rsync (ซึ่งจะใช้เวลา CPU มากขึ้นสำหรับไฟล์ขนาดใหญ่ แต่จะไม่ส่งผลให้มีการถ่ายโอนข้อมูลมากขึ้นอย่างมีนัยสำคัญหากไม่จำเป็น) และความเร็ว--compress
ตัวเลือกจะช่วยถ้าข้อมูล คุณกำลังถ่ายโอนไม่ได้อยู่ในรูปแบบการบีบอัด