ถ่ายโอนไฟล์ผ่าน SSH


9

ฉันต้องการใช้การถ่ายโอนไฟล์ผ่าน SSH ในบางสคริปต์ ฉันอ่านมันเป็นไปได้ที่จะ tar เหนือ ssh ฉันควรเริ่มอ่านที่ไหน


ทำไมคุณถึงนำ tar ขึ้นมา?
Zoredache

1
tar เป็นวิธีที่เร็วที่สุดในการคัดลอกไฟล์ผ่าน SSH scp และ rsync มีค่าใช้จ่ายโปรโตคอลจำนวนมากเมื่อคัดลอกไฟล์ขนาดเล็กจำนวนมาก
Justin

@ จัสตินแน่นอนว่าสมมติฐานของ tar คือคุณจะมีการเชื่อมต่อที่เชื่อถือได้ หากประสิทธิภาพแบบดิบไม่สำคัญก็มักจะดีกว่าที่จะยึดติดกับโซลูชันทั่วไปและเรียบง่ายเช่น scp / rsync
Zoredache

1
ฮะ? tar เหนือ ssh ไม่เลวแล้ว scp หรือ rsync สิ่งเดียวที่ rsync ดีกว่าคือให้คุณกลับมาทำงานต่อได้ หากการเชื่อมต่อไม่น่าเชื่อถือคุณควรลองใช้ tar ผ่าน ssh ก่อนแล้วค่อยถ่ายโอนด้วย rsync
Justin

@Justin นั่นจะทำให้สคริปต์ค่อนข้างซับซ้อน บางทีเราควรเริ่มต้นด้วยบางสิ่งพื้นฐานเพียงเล็กน้อย
John Gardeniers

คำตอบ:


23

ในการถ่ายโอนไฟล์ผ่าน ssh คุณสามารถทำได้

  • ใช้scp
    • scp -r /srcdir/ user@remotehost:/destdir/
  • ใช้rsyncบน ssh (ดูพารามิเตอร์ -e)
    • rsync -e ssh -a /srcdir/ user@remotehost:/destdir/
  • ใช้เครื่องมือบางอย่างที่ถ่ายโอนข้อมูลผ่าน stdin / out ( tar , cpioฯลฯ )
    • cd /sourcedir; tar -c . | ssh username@remotehost bash 'cd /dstdir; tar -x
  • เมานต์ระบบไฟล์ผ่านsshfs (หากฟิวส์ได้รับการสนับสนุนในระบบของคุณ)

ฉันใช้ทั้งสามอย่างสม่ำเสมอ ฉันใช้อันไหนขึ้นอยู่กับสถานการณ์
reinierpost

3

O'Reilly มีหนังสือพร้อมทุกอย่าง - SSH, The Secure Shell: The Definitive Guide - ถ้าคุณ Google เพราะมีหลายแหล่งอ้างอิงสถานที่ซื้อและดูทางออนไลน์


ต้องรักมันเมื่อคุณถูกโหวตและไม่มีความคิดเห็นที่จะบอกให้คุณรู้ว่าทำไม เขาถามว่าจะเริ่มอ่านที่ไหน - และนี่คือออนไลน์และจากร้านหนังสือ มันเป็นข้อมูลอ้างอิงที่ดีสำหรับ ssh
Kevin K

ฉันคิดว่ามันผิดเช่นกัน ทำไมคุณถึงลงคะแนน (สองครั้ง) เนื่องจากคุณตอบคำถามจริงและคำตอบที่ยอมรับ (โหวตมากถึง 15 ครั้ง) เป็นวิธีทั่วไปในการคัดลอกไฟล์บน ssh โดยไม่มีการอ้างอิงถึงตำแหน่งที่จะเริ่มอ่าน ฉันจะลงคะแนนให้คุณเพื่อพยายามแก้ไขสถานการณ์ อย่าปล่อยให้พวกเขาทำให้คุณผิดหวัง
Richard Holloway


0

สำหรับ tar over ssh คุณสามารถใช้ข้อเท็จจริง ssh ไปข้างหน้า stdin และ stdout ดังนั้นคุณสามารถทำได้

ssh server 'tar czf - /some/dir/' > tarfile.tar.gz

และมีการสำรองข้อมูลในเครื่องท้องถิ่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.