ฉันมีการเข้าถึง SSH ไปยังเซิร์ฟเวอร์ทั้งสองซึ่งหนึ่งในนั้นว่างเปล่า ฉันจะย้ายไดเรกทอรีไซต์จากเซิร์ฟเวอร์เก่าไปยังเซิร์ฟเวอร์ใหม่ผ่านการเชื่อมต่อ SSH ได้อย่างไร
PS: บนเซิร์ฟเวอร์ทั้งสองเป็นยูนิกซ์
ฉันมีการเข้าถึง SSH ไปยังเซิร์ฟเวอร์ทั้งสองซึ่งหนึ่งในนั้นว่างเปล่า ฉันจะย้ายไดเรกทอรีไซต์จากเซิร์ฟเวอร์เก่าไปยังเซิร์ฟเวอร์ใหม่ผ่านการเชื่อมต่อ SSH ได้อย่างไร
PS: บนเซิร์ฟเวอร์ทั้งสองเป็นยูนิกซ์
คำตอบ:
rsync
ที่ฉันชอบคือ มันฉลาดพอที่จะคัดลอกเฉพาะสิ่งที่ต้องคัดลอก (เช่นเปลี่ยนแปลงหรือใหม่)
rsync -avz /source/path user@desthost:/destination/path/
หมายเหตุสุดท้าย/
ในตอนท้ายเพื่อขอให้ rsync คัดลอกภายในเส้นทางนั้น (ไม่เกิน)
rsync
ดูแลการจัดการการเชื่อมต่อ ssh สำหรับคุณ avz
(ทั่วไป) ตัวเลือกถามrsync
ที่จะใช้เก็บโหมด (tar) เพื่อที่จะคัดลอกซ้ำและให้มากที่สุดเท่าที่เป็นไปได้วันที่และใช้ค่า v
ตัวเลือกอย่างละเอียดที่จะแสดงให้คุณเห็นสิ่งที่กำลังเกิดขึ้น z
ตัวเลือกพระทัยซิป (บีบอัด) โอนเพื่อหวังประหยัดเวลาและแบนด์วิดธ์
rsync
มีประสิทธิภาพมากและใช้งานโดยมืออาชีพส่วนใหญ่อย่างไรก็ตามคุณอาจต้องการทดสอบก่อนโดยใช้ข้อมูลที่ไม่มีค่าเพื่อให้แน่ใจว่าเส้นทางและตัวเลือกนั้นตรงกับความต้องการ
หากคุณต้องการใช้ rsync ผ่าน SSH บนพอร์ตที่ไม่ได้มาตรฐานเช่น 2222 คุณสามารถใช้คำสั่งต่อไปนี้ ( ดูบทความนี้ ):
rsync -avz -e 'ssh -p 2222' /source/path user@desthost:/destination/path/
ฉันเขียนคำตอบที่ทำงานได้ดีในคำถามอื่น มันใช้ SSH-Agent เพื่อย้ายการถ่ายโอนข้อมูล mysql: วิธีที่เร็วที่สุดในการย้ายฐานข้อมูลหลายไปยังเซิร์ฟเวอร์ใหม่
รวมสิ่งนี้กับคำตอบของ jscott