คำสั่ง ROBOCOPY เพื่อทำการสำรองข้อมูลเพิ่มเติม


31

ฉันรู้สึกสับสนกับเอกสาร ROBOCOPY ฉันต้องการสำรองข้อมูลส่วนเพิ่มของไฟล์ในเครื่องไปยังไดรฟ์เครือข่าย (M) ฉันต้องการให้มันทำงานเร็วที่สุดโดยไม่มีไฟล์บันทึกและมีข้อความน้อยที่สุดบนหน้าจอ ไฟล์ของฉันทั้งหมดอยู่ในโฟลเดอร์เดียว (MyFolder) ที่มีโฟลเดอร์ย่อยหลายระดับ โดย "ส่วนเพิ่ม" ฉันหมายถึง "คัดลอกเฉพาะสิ่งใหม่หรือเปลี่ยนแปลง" ฉันไม่ต้องการลบไฟล์ประวัติใด ๆ ในปลายทาง แต่ถ้าฉันเปลี่ยนไฟล์ฉันต้องการเวอร์ชั่นใหม่กว่าเท่านั้น และถ้าฉันไม่ได้เปลี่ยนไฟล์ฉันก็ไม่ต้องการคัดลอกมันไปยังไฟล์สำรองที่มีอยู่ ถูกต้องหรือไม่ (เรียกใช้ Win7 Enterprise)

robocopy C:\MyFolder M:\MyFolder /z /np /xo /e

กรุณาไม่มีข้อเสนอแนะสำหรับอะไรนอกจาก robocopy ฉันไม่ได้รับอนุญาตให้ติดตั้งอะไร และฉันไม่สนใจเรื่องความปลอดภัย ฉันมีคนสำหรับเรื่องนั้น (ไม่ว่าฉันต้องการหรือไม่) ;-)


1
คุณต้องการตัวเลือก / s หรือ / e เพื่อคัดลอกไดเรกทอรีย่อย
David Marshall

@DavidMarshall: อ๊ะ ฉันรู้จริง ๆ แล้ว ที่เพิ่ม ตอนนี้ฉันสบายดีไหม?
dmm

ใช่. ฉันใช้สิ่งที่คล้ายกัน
David Marshall

ทดสอบตอนนี้ ยังมีอีกหลายสิ่งที่เขียนลงบนหน้าจอ ฉันจะกำจัดมันในอนาคตได้อย่างไร
dmm

3
ตัวเลือกหนึ่งที่สามารถสร้างประสิทธิภาพที่แตกต่างได้อย่างชาญฉลาดคือการถ่ายโอนแบบมัลติเธรด /MT[:N] ฉันมีซีพียู 4 คอร์ดังนั้นฉันมักจะใช้บางอย่างใน 8-16 rage สำหรับจำนวนเธรดของฉัน ฉันคิด 2-4 เธรดต่อหนึ่งคอร์ คุณควรทดสอบด้วยค่าต่าง ๆ บนฮาร์ดแวร์ของคุณอย่างแน่นอน มัลติเธรดช่วยได้มากที่สุดเมื่อคุณมีไฟล์ขนาดเล็กจำนวนมาก หากคุณมีไฟล์ขนาดใหญ่จำนวนเล็กน้อยมันจะไม่ช่วยอะไรมาก
Zoredache

คำตอบ:


40

ฉันใช้สคริปต์ต่อไปนี้ได้สำเร็จหลายปีมาแล้ว:

robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL

พารามิเตอร์อธิบาย

  • /MIRตัวเลือก (เทียบเท่า/E /PURGE) ย่อมาจาก "กระจก" และเป็นตัวเลือกที่สำคัญที่สุด จะถือว่าโฟลเดอร์ต้นทางของคุณเป็น "หลัก" ทำให้เขียนทับการเปลี่ยนแปลงใด ๆ ในด้านเป้าหมายซึ่งเป็นการตั้งค่าที่มีประโยชน์สำหรับการสำรองข้อมูล

  • /FFTเป็นตัวเลือกที่สำคัญมากเพราะจะช่วยให้ความแตกต่าง 2 วินาทีเมื่อเปรียบเทียบเวลาประทับของไฟล์เช่นความแตกต่างของนาฬิกาเล็กน้อยระหว่างคอมพิวเตอร์และอุปกรณ์สำรองของคุณไม่สำคัญ สิ่งนี้จะช่วยให้มั่นใจได้ว่าเฉพาะไฟล์ที่ถูกแก้ไขเท่านั้นที่จะถูกคัดลอกแม้ว่าเวลาการแก้ไขไฟล์จะไม่ถูกซิงโครไนซ์อย่างแน่นอน

  • /R:3ระบุจำนวนการลองใหม่หากการเชื่อมต่อควรล้มเหลวและ/W:10ระบุเวลารอ 10 วินาทีระหว่างการลองใหม่ ตัวเลือกเหล่านี้มีประโยชน์เมื่อทำการสำรองข้อมูลผ่านเครือข่าย

  • /Z คัดลอกไฟล์ใน "โหมดเริ่มต้นใหม่" ดังนั้นไฟล์ที่คัดลอกบางส่วนสามารถดำเนินการต่อหลังจากหยุด

  • /NPและ/NDLปราบปรามการแก้ปัญหาส่งออกบางอย่างคุณยังสามารถเพิ่ม/NS, /NC, /NFLเพื่อลดปริมาณของการส่งออก (ดูเอกสารสำหรับรายละเอียด) อย่างไรก็ตามฉันขอแนะนำให้พิมพ์บาง debug output ในระหว่างการรันครั้งแรกเพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างที่คาดไว้

พารามิเตอร์ที่มีประโยชน์เพิ่มเติมที่กล่าวถึงโดยผู้ใช้รายอื่น

  • /XJDไม่รวม "จุดเชื่อมต่อ" สำหรับไดเรกทอรีลิงก์สัญลักษณ์ที่อาจทำให้เกิดปัญหาเช่นลูปไม่สิ้นสุดระหว่างการสำรองข้อมูล ดูความคิดเห็นของBrianสำหรับรายละเอียด

  • /MT[:N]ใช้มัลติเธรดและสามารถเพิ่มความเร็วในการถ่ายโอนไฟล์ขนาดเล็กจำนวนมาก สำหรับ N ค่า 2-4 แกนของจำนวนแกนควรทำบนเครื่องปกติ แสดงความคิดเห็นโดยZoredacheกับคำถามเดิม

แก้ไขเพื่อตอบสนองต่อความคิดเห็นของ Granger:

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


คำสั่งนี้อนุญาตให้คัดลอกไฟล์ที่มีสิทธิ์หรือไม่ robocopy C: \ source M: \ destination / MIR / FFT / R: 3 / W: 10 / Z / NP / NDL
Shabeer Sher

4
ยกเว้น / MIR (/ PURGE) จะลบไฟล์ที่ปลายทางซึ่งไม่มีอยู่อีกต่อไปที่แหล่งที่มา คำถามที่ถามอย่างชัดเจนระบุว่าไม่ต้องการ
Granger

@Shabeer No, Robocopy โดยค่าเริ่มต้นจะคัดลอกข้อมูล (D), คุณสมบัติ (A) และ timestamps (T) เท่านั้น ต้องระบุค่าอื่น ๆ ด้วยพารามิเตอร์ "/ copy: <value>" เช่น "/ copy: DATS" เพื่อรวมสิทธิ์ ACL แต่เนื่องจากฉันคัดลอกไปยัง NAS ที่ใช้ Linux ซึ่งไม่สมเหตุสมผลสำหรับฉัน
pederpansen

1
@Brian ขอบคุณสำหรับคำใบ้ ฉันไม่เคยมีปัญหากับจุดเชื่อมต่อ แต่ฉันคิดว่ามันจะไม่เจ็บที่จะหลีกเลี่ยงพวกเขาในกรณี เพิ่มไว้ในคำตอบของฉัน
pederpansen

1
@pederpansen: มีแนวโน้มที่จะเกิดขึ้นเมื่อคัดลอกโฟลเดอร์ผู้ใช้ (หรือคัดลอกไดรฟ์ทั้งหมด) โดยปกติแล้วโฟลเดอร์ข้อมูลของแอปพลิเคชันจะเป็นตัวการเนื่องจากมีจุดเชื่อมต่อสำหรับเหตุผลความเข้ากันได้ของแอปพลิเคชัน ลองเรียกใช้ "cd C: \ Users \ [USERFOLDER] \ AppData \ Local \ Application Data \ application data \ application data \" จากพรอมต์คำสั่งหากคุณต้องการดูเส้นทางที่ไม่มีที่สิ้นสุดตัวอย่าง ใช้ได้กับ Windows 10
Brian

8

ฉันชอบที่จะใช้ต่อไปนี้:

robocopy "C:\Users\<user>" "F:\robocopy\<user>" /XJD /R:0 /XA:SH /E /ZB /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE

ฉันเรียกใช้สิ่งนี้ในฐานะผู้ดูแลระบบดังนั้นโหมดสำรองข้อมูล ( /bตัวเลือก) สามารถทำสำเนาไฟล์ที่ใช้งานได้

ตัวเลือกอื่น ๆ ที่ไม่เกี่ยวข้องกับการสำรองข้อมูลที่เพิ่มขึ้น ได้แก่ :

/XD เพื่อแยกไดเรกทอรีออกจากการสำรองข้อมูล

/XJD เพื่อยกเว้นจุดเชื่อมต่อ ("เพลงของฉัน")

/R:0 เพื่อตั้งค่าการลองใหม่เมื่อพยายามที่ล้มเหลวเป็น 0

/XA:SH เพื่อข้ามไฟล์ที่ซ่อนอยู่และระบบ

/NP /NS /NDL /NFL /NCในการลบเป็นข้อมูลการเข้าสู่ระบบมากที่สุดเท่าที่เป็นไปได้ผนวกตัวเลือกต่อไป

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