วิธี gzip ไดเรกทอรีโอนผ่าน scp และคลายในคำสั่งเดียว?


11

ฉันถ่ายโอนไดเรกทอรีขนาดใหญ่บ่อยๆscpและมันจะหวานถ้าฉันสามารถบีบอัดไดเรกทอรีส่งและแตกมันทั้งหมดในที่เดียว

เป็นไปได้อย่างนี้ไหม?

คำตอบ:


29

วิธีการเกี่ยวกับการใช้rsyncแทนด้วย-zตัวเลือกเปิดใช้งานการบีบอัด?

rsync -az --progress source_dir/* remote_host:/destination_dir

สิ่งนี้ยังมีประโยชน์เพิ่มเติมที่ว่าถ้าไฟล์นั้นมีอยู่แล้วและไม่ได้เปลี่ยนในปลายทางมันจะไม่ถูกถ่ายโอน


7

ขอบคุณคำตอบของ @ johnshen64 ทำให้ฉันสามารถทำสิ่งที่ค่อนข้างดีได้

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

น่าเสียดายที่นี่ไม่ได้แสดงความคืบหน้าในขณะที่ถ่ายโอน ฉันสังเกตเห็นการปรับปรุงความเร็วอย่างไม่น่าเชื่อโดยใช้วิธีนี้

หากใครรู้วิธีแสดงความคืบหน้าสำหรับการโอนเช่นนี้ฉันขอขอบคุณความช่วยเหลือเป็นอย่างมาก :)


1
แทรกpvระหว่างน้ำมันดินและSSH
user1686

นี่เป็นสิ่งที่ดีถ้าคุณไม่มี rsync
Simon Hartcher

2

ดีฉันจะใช้ tar แทน

tar cf - ไดเรกทอรี | เซิร์ฟเวอร์ ssh 'tar xf -'

คุณสามารถเพิ่ม v เพื่อยืนยัน

zip ควรเหมือนกัน แต่ tar มีความแข็งแกร่งกว่าสำหรับ linux ในความคิดของฉัน


+1 ขอบคุณสำหรับความช่วยเหลือของคุณ; นี่พาฉันไปครึ่งทางแล้ว ฉันสามารถหาวิธีแก้ปัญหาที่ไม่ได้ใช้-อักขระที่เป็นความลับรวมถึงใช้การบีบอัด gzip และอนุญาตให้กำหนดเป้าหมายไดเรกทอรีปลายทาง
macek

@macek: โปรดทราบว่าf -อาจจำเป็นสำหรับระบบปฏิบัติการอื่นเนื่องจากtarเวอร์ชั่นส่วนใหญ่จะพยายามอ่านจากเทปไดรฟ์ การอ่านจาก stdin โดยค่าเริ่มต้นเป็น GNU เฉพาะ
1686
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.