วิธีถ่ายโอนไฟล์จากเซิร์ฟเวอร์ Linux เครื่องหนึ่งไปยังอีกเครื่องหนึ่ง

ผู้เขียน: Carl Weaver
วันที่สร้าง: 23 กุมภาพันธ์ 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
How To Transfer Files From Linux To Windows (SSH/Putty)
วิดีโอ: How To Transfer Files From Linux To Windows (SSH/Putty)

เนื้อหา

ในสภาพแวดล้อมแบบหลายเซิร์ฟเวอร์ของ Linux งานจำนวนมากเกี่ยวข้องกับการย้ายไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปจากเซิร์ฟเวอร์หนึ่งไปยังอีกเครื่องหนึ่ง ขึ้นอยู่กับจำนวนไฟล์ที่คุณต้องย้าย มีหลายคำสั่งที่สามารถช่วยคุณได้ .... สมมติว่าสำหรับการสนทนาเหล่านี้ว่าเซิร์ฟเวอร์ของเราคือ alice และ madhat และผู้ใช้ของเราที่ alice คือ rabbit และผู้ใช้ของเราที่ madhat คือ fieldmouse

ขั้นตอน

  1. 1 สำหรับไฟล์อย่างง่าย ให้ลองใช้คำสั่ง "scp" คุณสามารถใช้คำสั่งนี้เป็นคำสั่ง "push" หรือ "pull" แต่ให้เริ่มต้นด้วยการพุชไฟล์ไปยังเซิร์ฟเวอร์อื่น ในขณะที่ใช้อลิซใช้คำสั่ง "scp myfile fieldmouse @ madhat: thatfile" การดำเนินการนี้จะคัดลอกไฟล์ไปยังระบบอื่นภายใต้รหัสผู้ใช้ "thatfile" หากคุณเข้าสู่ระบบอื่น คุณสามารถดึงไฟล์ได้ง่ายๆ ด้วยคำสั่ง "scp rabbit @ alice: myfile thatfile" และได้ผลลัพธ์เช่นเดียวกัน
  2. 2 ในการคัดลอกไดเร็กทอรีทั้งหมด เราสามารถใช้คำสั่ง "scp" อีกครั้ง คราวนี้เราจะเพิ่มสวิตช์ -r เพื่อบังคับให้สำเนาทำงาน "แบบเรียกซ้ำ" "scp -r mydir fieldmouse @ madhat :" - จะคัดลอกไดเร็กทอรี "mydir" ทั้งหมดไปยังระบบอื่น รวมถึงเนื้อหาทั้งหมดและไดเร็กทอรีเพิ่มเติม ไดเร็กทอรีใน madhat จะยังคงถูกเรียกว่า mydir
  3. 3 จะเป็นอย่างไรถ้าคุณมีไฟล์และไดเร็กทอรีจำนวนมากที่จะคัดลอก? คุณสามารถใช้คำสั่ง "tar" เพื่อสร้างไฟล์หนึ่งไฟล์ จากนั้นคัดลอกไฟล์ดังกล่าวตามด้านบน จากนั้นใช้ tar เพื่อแจกจ่ายไปยังเซิร์ฟเวอร์อื่น ... แต่ดูเหมือนว่า ... ไม่เหมือน Unix มันต้องมีวิธีทำในขั้นตอนเดียวใช่ไหม? แน่นอน!

    E ใส่ท่อของเปลือกที่คุณชื่นชอบ เรายังคงสามารถใช้ tar เพื่อบรรจุไฟล์ที่เราต้องการแล้วใช้ SSH เพื่อนำมันไปยังระบบอื่น (ซึ่งเป็นสิ่งที่ SCP ใช้ภายใต้เชลล์) และในทางกลับกัน tar เพื่อแจกจ่ายไฟล์กลับ แต่ทำไมต้องเสียเวลาและพื้นที่ในการสร้างไฟล์ tar ในเมื่อเราสามารถสร้างไพพ์ที่ครอบคลุมทั้งสองระบบและส่งข้อมูล tar ผ่านมันได้?

    ใช้ไดเร็กทอรีเดียวกันกับในตัวอย่างก่อนหน้านี้ ให้ลอง "tar -cf - mydir / * | ssh fieldmouse @ madhat" tar -xf - "

เคล็ดลับ

  • แน่นอนว่ายังมีวิธีอื่นๆ ในการทำเช่นนี้อีกด้วย Linux เต็มไปด้วยเครื่องมือการให้คะแนนของคุณอาจมีการเปลี่ยนแปลง
  • คุณควรเปลี่ยนชื่อผู้ใช้ / ชื่อโฮสต์ / ชื่อไดเร็กทอรีไฟล์ ขึ้นอยู่กับการกำหนดค่าเครือข่ายและสภาพแวดล้อมของคุณในขณะที่ใช้คำสั่งด้านบน คำสั่งข้างต้นเป็นเพียงตัวอย่างวิธีการรันคำสั่งเพื่อคัดลอกไฟล์ไปยังเซิร์ฟเวอร์

คำเตือน

  • ตรวจสอบให้แน่ใจว่า ID และ GID ของพวกเขาบนระบบต่างๆ ที่คุณใช้เหมือนกัน (ไม่ใช่แค่ชื่อผู้ใช้) หากไม่เป็นเช่นนั้น ปัญหาด้านความปลอดภัยที่น่าสนใจก็จะเกิดขึ้น