ใน SSH ฉันจะ mv ไปยังระบบโลคัลของฉันได้อย่างไร


129

ฉันsshอยู่ในไดเรกทอรีของเว็บโฮสต์ของฉันและtarอัปเดตเว็บแอปแล้ว เมื่อฉันพยายามที่mvจะ~/mydirectory/backupsหรือ/home/mydirectory/backupsมันกำหนด "บ้าน" เป็นรากของฉันในเว็บโฮสติ้งที่ฉัน ssh'ed เข้า

ฉันจะ mv in ssh ไปยังโลคัลไดรฟ์ในขณะที่ยังอยู่ในระบบของเว็บโฮสต์


คุณกำลังเชื่อมต่อระบบปฏิบัติการอะไร
Zoredache

คำตอบ:


181

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

อย่างไรก็ตามความจริงที่ว่าคอมพิวเตอร์ระยะไกลยอมรับการเชื่อมต่อ ssh ให้ตัวเลือกในการแลกเปลี่ยนไฟล์:

ใช้ scp ในการคัดลอกจากเครื่องคอมพิวเตอร์ของคุณไปยังรีโมทให้พิมพ์ในเครื่องคอมพิวเตอร์:

scp /tmp/file user@example.com:/home/name/dir

(โดยที่ / tmp / file สามารถถูกแทนที่ด้วยไฟล์โลคอลและ / home / name / dir ด้วยรีโมตไดเร็กทอรีใด ๆ )

ในการคัดลอกจากคอมพิวเตอร์ระยะไกลเพื่อท้องถิ่นหนึ่งชนิดในท้องถิ่นคอมพิวเตอร์:

scp user@example.com:/home/name/dir/file /tmp

ใช้ sshfs นี่เป็นขั้นสูงขึ้นเล็กน้อย แต่ก็ดีกว่ามาก (เมื่อการเชื่อมต่ออินเทอร์เน็ตของคอมพิวเตอร์ทั้งสองเครื่องดีถ้าไม่ติดกับ scp)

คุณสามารถ "ลิงก์" ไดเรกทอรีจากคอมพิวเตอร์ระยะไกลไปยังไดเรกทอรี (ว่าง) ของเครื่องคอมพิวเตอร์ สมมติว่าคุณ "ลิงก์" the / some / remote / dir จากคอมพิวเตอร์ระยะไกลไปยัง / home / youruser / remotecomp ในคอมพิวเตอร์ของคุณ หากมีไฟล์ / some / remote / dir / file ในคอมพิวเตอร์ระยะไกลคุณสามารถดูได้ที่ / home / youruser / remotecomp / file คุณสามารถคัดลอกและ mv ตามปกติและคุณสามารถแก้ไขไฟล์และ dirs ระยะไกลได้

อย่างไรก็ตามโปรดทราบว่าเมื่อการเชื่อมต่อสิ้นสุดลง / home / youruser / remotecomp จะกลายเป็น dir ที่ว่างเปล่าอีกครั้งและคุณจะเก็บเฉพาะไฟล์ที่คุณคัดลอกไปยังไดเรกทอรีอื่นในคอมพิวเตอร์ท้องถิ่น

เพื่อให้บรรลุนี้:

1) ติดตั้ง sshfs:

sudo apt-get install sshfs

2) สร้าง dir ที่ว่างเปล่า

mkdir /home/youruser/remotecomp

3) "ลิงก์" สองไดเรกทอรี (คำที่ถูกต้องคือ mount)

sshfs user@server.com:/some/remote/dir /home/youruser/remotecomp

4) เพลิดเพลิน

5) "ยกเลิกการเชื่อมโยง" dirs

fusermount -u /home/youruser/remotecomp

หากคอมพิวเตอร์ในพื้นที่ใช้งาน windows คุณสามารถค้นหารุ่นของscpwindows ดูเช่นwinscp


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

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

อย่างไรก็ตามคุณสามารถค้นหา "ไคลเอนต์ scp" สำหรับ windows ดูเช่นwinscp.net/eng/download.php
josinalvo

ฉันชอบsshfsตัวเลือก
Fibo Kowalsky

หากคุณกำลังถ่ายโอนไฟล์ขนาดใหญ่ใช้ rsync ผ่าน SSH rsync -P -e ssh /tmp/file user@example.com:/home/name/dirด้วย นี่เป็นเพราะหากการถ่ายโอนไฟล์ล้มเหลวครึ่งทางscpเพียงแค่จะลบไฟล์ ในทางกลับกันถ้าคุณใช้rsyncกับ-Pตัวเลือกมันจะเก็บไฟล์ที่ไม่สมบูรณ์ในเครื่องระยะไกลและเมื่อคุณเริ่มการถ่ายโอนอีกครั้งมันจะตรวจสอบให้แน่ใจว่าสิ่งที่อยู่ในเครื่องระยะไกลตรงกับไฟล์ในเครื่องท้องถิ่นของคุณและ จากนั้นดำเนินการต่อในกรณีที่การถ่ายโอนถูกทิ้ง
บอริส

16

คุณสามารถใช้หรือscp rsyncในระบบท้องถิ่นของคุณ:

scp remoteuser@remotehost:/remote/dir/file /local/dir/

แต่เนื่องจากคุณกล่าวถึงการสำรองข้อมูลฉันคิดว่ามันจะเพิ่มขึ้นและคุณจะต้องทำมันเป็นระยะ ๆ ดังนั้นจึงrsyncเป็นตัวเลือกที่ดีกว่าสำหรับการสำรองข้อมูลเพิ่มเติม บนเปลือกท้องถิ่นของคุณ:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/

เห็นrsync(1)และscp(1)man man สำหรับตัวเลือก


10

คุณสามารถใช้สำเนาที่ปลอดภัยของscp

จากคุณเชลล์ท้องถิ่น:

scp -C username@webhost:/path/of-the/tar.archive /home/mydirectory/backups/

ตัวอย่างนี้จะคัดลอกผ่าน ssh จาก /path/of-the/tar.archive ของเว็บโฮสต์ของคุณไปยัง / home / mydirectory / backups /

ตัวเลือกพิเศษ:

-C : เปิดใช้งานการบีบอัด


6

ฉันมีปัญหาเดียวกัน. นี่คือทางออกที่ง่าย: -

  1. เปิดหอยโข่ง(ตัวสำรวจไฟล์)
  2. คลิก+ Other Locationsที่ด้านล่างของแผงด้านซ้าย
  3. Connect to serverที่ด้านล่างมีแถบ เขียนที่อยู่ SSH ssh://111.222.333.444/ในกล่องใส่เช่น
  4. ป้อนชื่อผู้ใช้และรหัสผ่านของคุณในกล่องโต้ตอบที่จะเปิด
  5. เมื่อตรวจสอบสิทธิ์สำเร็จคุณจะอยู่ในhomeสถานที่ห่างไกล อย่าลังเลที่จะย้ายไฟล์ที่นี่และที่นั่น

คำตอบที่ดี! ง่ายและใกล้เคียงที่สุดกับคำตอบสำหรับคำถามจริงเช่นคุณจะทำอย่างไร mv จากภายในคอมพิวเตอร์ระยะไกล ssh คำตอบคือคุณทำไม่ได้คุณทำได้จากเครื่องคอมพิวเตอร์ หรือนี่สิ! คุณทำแบบกราฟิกจาก explorer ของคุณเพื่อให้อย่างน้อยกับผู้ใช้มันดูเหมือนว่าคุณสามารถย้ายไฟล์ได้โดยตรงจากระยะไกลไปยังท้องถิ่น
Kvothe

2

คำตอบอื่น ๆ แนะนำrsyncหรือscpทั้งสองอย่างกำหนดให้คุณต้องทราบตำแหน่งของไฟล์ที่คุณต้องการคัดลอกบนเครื่องระยะไกล

หากคุณแทนต้องการที่จะสามารถกระตุ้นรอบบนเครื่องระยะไกลเช่นคุณสามารถมีคุณต้องการที่จะทำงานssh sftpการเข้าสู่เซิร์ฟเวอร์นั้นคล้ายกันมากsshแต่เมื่อคุณเข้าแล้วให้พิมพ์helpเพื่อรับรายการคำสั่ง - ช่วยให้คุณย้ายตัวเองไปมาได้ทั้งบนเครื่องโลคอลและรีโมตและถ่ายโอนไฟล์ไปมาได้อย่างง่ายดาย


1

sshมันแปลกที่ว่ามันเป็นไปไม่ได้จากภายใน ในเทอร์มินัลปกติสามารถส่ง / รับไฟล์โดยใช้คำสั่ง zmodem

นี้ช่วย google ขึ้นzssh: http://zssh.sourceforge.net/ sshหนึ่งจะมีการเรียกใช้เป็นเสื้อคลุมไปเดิม

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