rsync สามารถทำงานต่อหลังจากถูกขัดจังหวะหรือไม่


188

ฉันเคยrsyncคัดลอกไฟล์จำนวนมาก แต่ระบบปฏิบัติการ (Ubuntu) ของฉันรีสตาร์ทโดยไม่คาดหมาย

หลังจากรีบูตฉันวิ่งrsyncอีกครั้ง แต่จากผลลัพธ์บนเทอร์มินัลฉันพบว่าrsyncยังคงคัดลอกรายการที่คัดลอกมาก่อนหน้านี้แล้ว แต่ฉันได้ยินว่าrsyncสามารถค้นหาความแตกต่างระหว่างต้นทางและปลายทางได้ดังนั้นจึงคัดลอกความแตกต่าง ดังนั้นฉันสงสัยในกรณีของฉันหากrsyncสามารถดำเนินการต่อสิ่งที่ถูกทิ้งไว้ครั้งสุดท้าย?


ใช่ rsync จะไม่คัดลอกไฟล์ที่คัดลอกมาแล้วอีกครั้ง มีกรณีขอบบางอย่างที่การตรวจจับสามารถล้มเหลวได้ มันคัดลอกไฟล์ที่คัดลอกมาทั้งหมดหรือไม่? ตัวเลือกใดที่คุณใช้ อะไรคือระบบไฟล์ต้นทางและเป้าหมาย? หากคุณรัน rsync อีกครั้งหลังจากที่คัดลอกทุกอย่างแล้วจะคัดลอกอีกครั้งหรือไม่
Gilles

@Gilles: ขอบคุณ! (1) ฉันคิดว่าฉันเห็น rsync คัดลอกไฟล์เดียวกันอีกครั้งจากเอาต์พุตบนเทอร์มินัล (2) ตัวเลือกเช่นเดียวกับในการโพสต์อื่น ๆ sudo rsync -azvv /home/path/folder1/ /home/path/folder2ของฉันคือ (3) แหล่งที่มาและเป้าหมายเป็นทั้ง NTFS, แหล่งที่ซื้อคือ HDD ภายนอกและเป้าหมายคือ HDD ภายใน (3) ตอนนี้ทำงานและยังไม่เสร็จ
ทิม

นอกจากนี้ยังมี
แฟล็

3
@Tim ด้านบนของหัวของฉันมีนาฬิกาอย่างน้อยเอียงและความแตกต่างในการแก้ปัญหาเวลา (ปัญหาทั่วไปกับระบบไฟล์ FAT ที่เก็บเวลาเพิ่มขึ้น 2 วินาที--modify-windowตัวเลือกช่วยด้วย)
Gilles

1
หากคุณไม่มี / หรือ / ที่ส่วนท้ายของอาร์กิวเมนต์พา ธ ของไฟล์ต้นฉบับจากนั้นจะสร้างสำเนาพิเศษในไดเรกทอรีย่อยที่มีชื่อเหมือนกับไดเรกทอรีต้นทาง
Skaperen

คำตอบ:


285

ก่อนอื่นเกี่ยวกับคำถามที่ "ดำเนินการต่อ" ส่วนหนึ่งของคำถามของคุณ--partialเพียงแค่บอกจุดสิ้นสุดการรับเพื่อเก็บไฟล์ที่ถ่ายโอนบางส่วนหากการส่งสิ้นสุดหายไปราวกับว่าพวกเขาถูกถ่ายโอนอย่างสมบูรณ์

ขณะถ่ายโอนไฟล์ไฟล์นั้นจะถูกบันทึกชั่วคราวเป็นไฟล์ที่ซ่อนอยู่ในโฟลเดอร์เป้าหมาย (เช่น.TheFileYouAreSending.lRWzDC) หรือโฟลเดอร์ที่เลือกโดยเฉพาะหากคุณตั้ง--partial-dirสวิตช์ เมื่อการถ่ายโอนล้มเหลวและ--partialไม่ได้ตั้งค่าไฟล์ที่ซ่อนอยู่นี้จะยังคงอยู่ในโฟลเดอร์ปลายทางภายใต้ชื่อที่เป็นความลับนี้ แต่หาก--partialตั้งไว้ไฟล์จะถูกเปลี่ยนชื่อเป็นชื่อไฟล์เป้าหมายที่แท้จริง (ในกรณีนี้TheFileYouAreSending) แม้ว่าไฟล์ ไม่สมบูรณ์ ประเด็นก็คือว่าคุณหลังจากนั้นสามารถดำเนินการโอนโดยใช้ rsync อีกครั้งกับอย่างใดอย่างหนึ่งหรือ--append--append-verify

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

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

ดังนั้นเพื่อสรุปหากคุณกำลังย้ายไฟล์ขนาดใหญ่และคุณต้องการให้ตัวเลือกดำเนินการ rsync ที่ยกเลิกหรือล้มเหลวจากจุดที่แน่นอนที่rsyncหยุดคุณต้องใช้--appendหรือ--append-verifyเปลี่ยนในความพยายามครั้งต่อไป

@Alex ตามที่ระบุไว้ด้านล่างเนื่องจากเวอร์ชั่น 3.0.0 rsyncมีตัวเลือกใหม่--append-verifyซึ่งจะทำงานเหมือน--appendก่อนที่จะมีสวิตช์นั้น คุณอาจเคยต้องการลักษณะการทำงานของเพื่อตรวจสอบรุ่นของคุณด้วย--append-verify rsync --versionหากคุณอยู่ใน Mac และไม่ได้ใช้rsyncจากhomebrewคุณจะ (อย่างน้อยและรวมถึง El Capitan) มีรุ่นเก่าและจำเป็นต้องใช้มากกว่า--append --append-verifyทำไมพวกเขาไม่ได้ให้พฤติกรรมบน--appendและตั้งชื่อแทนผู้มาใหม่--append-no-verifyเป็นบิตทำให้งง ไม่ว่าจะด้วยวิธีใด--appendบนrsyncก่อนหน้าเวอร์ชัน 3 จะเหมือนกับ--append-verifyในเวอร์ชันที่ใหม่กว่า

--append-verifyไม่เป็นอันตราย: มันจะอ่านและเปรียบเทียบข้อมูลที่ปลายทั้งสองเสมอและไม่เพียง แต่คิดว่ามันเท่ากัน มันทำโดยใช้ checksums ดังนั้นมันจึงเป็นเรื่องง่ายในเครือข่าย แต่มันต้องการการอ่านจำนวนข้อมูลที่ใช้ร่วมกันที่ปลายทั้งสองของเส้นลวดก่อนที่มันจะสามารถทำการถ่ายโอนต่อได้จริงโดยผนวกเข้ากับเป้าหมาย

ประการที่สองคุณพูดว่า "ได้ยินว่า rsync สามารถค้นหาความแตกต่างระหว่างต้นทางและปลายทางได้ดังนั้นจึงต้องคัดลอกความแตกต่าง"

ถูกต้องและเรียกว่าการถ่ายโอนเดลต้า แต่เป็นสิ่งที่แตกต่าง หากต้องการเปิดใช้งานสิ่งนี้คุณเพิ่ม-cหรือ--checksumเปลี่ยน เมื่อใช้สวิตช์นี้ rsync จะตรวจสอบไฟล์ที่มีอยู่ที่ปลายทั้งสองของสาย มันทำสิ่งนี้ในกลุ่มเปรียบเทียบ checksums ที่ปลายทั้งสองและถ้าพวกเขาแตกต่างกันมันจะถ่ายโอนเฉพาะส่วนต่าง ๆ ของไฟล์ แต่เนื่องจาก @Jonathan ชี้ให้เห็นด้านล่างการเปรียบเทียบจะทำได้ก็ต่อเมื่อไฟล์มีขนาดเท่ากันทั้งสองด้านขนาดที่ต่างกันจะทำให้ rsync อัปโหลดไฟล์ทั้งหมดเขียนทับเป้าหมายด้วยชื่อเดียวกัน

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

เป็นที่น่าสังเกตว่าถ้าคุณใช้--checksumในการถ่ายโอนแบทช์ของไฟล์ที่ยังใหม่กับระบบเป้าหมายสมบูรณ์ rsync จะยังคงคำนวณ checksums ของพวกเขาในระบบต้นทางก่อนที่จะทำการถ่ายโอน ทำไมฉันไม่รู้ :)

ดังนั้นในระยะสั้น:

หากคุณมักจะใช้ rsync จะเพียงแค่ "ย้ายสิ่งต่างๆจาก A ถึง B" และต้องการเลือกที่จะยกเลิกการดำเนินการนั้นและต่อมากลับมามันไม่ได้ใช้--checksumแต่ทำ--append-verifyใช้

หากคุณกำลังใช้ rsync เพื่อสำรองข้อมูลบ่อยครั้งการใช้--append-verifyอาจจะไม่ทำอะไรให้คุณมากนักเว้นแต่ว่าคุณจะติดนิสัยในการส่งไฟล์ขนาดใหญ่ที่มีขนาดใหญ่ขึ้นอย่างต่อเนื่อง เป็นเคล็ดลับโบนัสหากคุณสำรองข้อมูลไปยังพื้นที่เก็บข้อมูลที่รองรับสแนปชอตเช่นbtrfsหรือzfsการเพิ่ม--inplaceสวิตช์จะช่วยให้คุณลดขนาดสแน็ปช็อตเนื่องจากไฟล์ที่เปลี่ยนแปลงไม่ได้ถูกสร้างขึ้นใหม่ แต่บล็อกที่มีการเปลี่ยนแปลงจะถูกเขียนทับโดยตรง สวิตช์นี้ยังมีประโยชน์หากคุณต้องการหลีกเลี่ยง rsync ในการสร้างสำเนาไฟล์บนเป้าหมายเมื่อมีการเปลี่ยนแปลงเล็กน้อยเกิดขึ้น

เมื่อใช้--append-verifyงาน rsync จะทำงานเหมือนทุกครั้งที่ไฟล์มีขนาดเท่ากัน หากพวกเขาแตกต่างกันในการแก้ไขหรือการประทับเวลาอื่น ๆ มันจะเขียนทับเป้าหมายกับแหล่งที่มาโดยไม่ต้องพิจารณาไฟล์เหล่านั้นต่อไป --checksumจะเปรียบเทียบเนื้อหา (เช็คซัม) ของไฟล์ทุกคู่ที่มีชื่อและขนาดเท่ากัน

อัปเดต 2015-09-01 มีการเปลี่ยนแปลงเพื่อให้สะท้อนถึงจุดที่ @Alex (ขอบคุณ!)

อัปเดต 2017-07-14 มีการเปลี่ยนแปลงเพื่อให้สะท้อนถึงจุดที่@Jonathan (ขอบคุณ!)


4
สิ่งนี้บอกว่า--partialเพียงพอ
Cees Timmerman


2
@CMCDragonkai ที่จริงลองดูคำตอบของ Alexander ด้านล่างเกี่ยวกับ--partial-dir- ดูเหมือนว่ามันเป็นสัญลักษณ์แสดงหัวข้อย่อยที่สมบูรณ์แบบสำหรับสิ่งนี้ ฉันอาจพลาดอะไรบางอย่างเลย)
DanielSmedegaardBuus

2
@DanielSmedegaardBuus ฉันทดสอบมันด้วยตัวเองผ่านการเชื่อมต่อที่ช้าและนี่คือสิ่งที่ฉันเห็นโดยเฉพาะ --partial : rsync คัดลอกไฟล์ไปที่ชื่อชั่วคราวการเชื่อมต่อถูกขัดจังหวะการเชื่อมต่อระยะไกลในที่สุด rsync ก็จะย้ายไฟล์นั้นไปยังชื่อปกติ เรียกใช้อีกครั้งโดยมี--partialและไม่มี --appendไฟล์ชั่วคราวใหม่จะเริ่มต้นได้ด้วยสำเนาของไฟล์รีโมตที่ถ่ายโอนเพียงบางส่วนจากนั้นการคัดลอกจะดำเนินต่อจากที่การเชื่อมต่อตาย (Ubuntu 14.04 / rsync 3.1)
Izkata

4
ระดับความมั่นใจของคุณในพฤติกรรมที่อธิบาย--checksumคืออะไร? ตามmanมันมีมากขึ้นจะทำอย่างไรกับการตัดสินใจว่าไฟล์ที่จะตั้งค่าสถานะสำหรับการถ่ายโอนกว่าด้วยการถ่ายโอนเดลต้า (ซึ่งสันนิษฐานว่าเป็นrsyncพฤติกรรมเริ่มต้นของ)
Jonathan Y.

56

TL; DR:

เพียงระบุไดเรกทอรีบางส่วนเนื่องจากหน้า rsync แนะนำ:

--partial-dir=.rsync-partial

คำอธิบายอีกต่อไป:

จริงๆแล้วมีคุณสมบัติในตัวสำหรับการทำเช่นนี้โดยใช้--partial-dirตัวเลือกซึ่งมีข้อดีหลายประการมากกว่า--partialและ--append-verify/ --appendทางเลือก

ส่วนที่คัดลอกมาจากหน้า rsync:

--partial-dir=DIR
      A  better way to keep partial files than the --partial option is
      to specify a DIR that will be used  to  hold  the  partial  data
      (instead  of  writing  it  out to the destination file).  On the
      next transfer, rsync will use a file found in this dir  as  data
      to  speed  up  the resumption of the transfer and then delete it
      after it has served its purpose.

      Note that if --whole-file is specified (or  implied),  any  par-
      tial-dir  file  that  is  found for a file that is being updated
      will simply be removed (since rsync  is  sending  files  without
      using rsync's delta-transfer algorithm).

      Rsync will create the DIR if it is missing (just the last dir --
      not the whole path).  This makes it easy to use a relative  path
      (such  as  "--partial-dir=.rsync-partial")  to have rsync create
      the partial-directory in the destination file's  directory  when
      needed,  and  then  remove  it  again  when  the partial file is
      deleted.

      If the partial-dir value is not an absolute path, rsync will add
      an  exclude rule at the end of all your existing excludes.  This
      will prevent the sending of any partial-dir files that may exist
      on the sending side, and will also prevent the untimely deletion
      of partial-dir items on the receiving  side.   An  example:  the
      above  --partial-dir  option would add the equivalent of "-f '-p
      .rsync-partial/'" at the end of any other filter rules.

โดยค่าเริ่มต้น rsync จะใช้ชื่อไฟล์ชั่วคราวแบบสุ่มซึ่งจะถูกลบเมื่อการถ่ายโอนล้มเหลว ตามที่กล่าวไว้การใช้--partialคุณสามารถทำให้ rsync เก็บไฟล์ที่ไม่สมบูรณ์ราวกับว่ามันถูกถ่ายโอนสำเร็จดังนั้นจึงเป็นไปได้ที่จะผนวกในภายหลังโดยใช้ตัวเลือก--append-verify/ --appendอย่างไรก็ตามมีสาเหตุหลายประการนี้เป็นสิ่งที่ดีที่สุดย่อย

  1. ไฟล์สำรองข้อมูลของคุณอาจไม่สมบูรณ์และหากไม่ได้ตรวจสอบไฟล์ระยะไกลซึ่งยังต้องไม่เปลี่ยนแปลงก็ไม่มีทางรู้ได้

  2. หากคุณพยายามที่จะใช้--backupและ--backup-dirคุณเพิ่งเพิ่มเวอร์ชันใหม่ของไฟล์นี้ที่ไม่เคยออกจากมาก่อนในประวัติเวอร์ชันของคุณ

อย่างไรก็ตามหากเราใช้--partial-dirrsync จะเก็บไฟล์ชั่วคราวบางส่วนไว้และทำการดาวน์โหลดต่อโดยใช้ไฟล์บางส่วนในครั้งต่อไปที่คุณเรียกใช้และเราจะไม่ประสบปัญหาดังกล่าวข้างต้น


38

คุณอาจต้องการเพิ่ม-Pตัวเลือกในคำสั่งของคุณ

จากmanหน้า:

--partial By default, rsync will delete any partially transferred file if the transfer
         is interrupted. In some circumstances it is more desirable to keep partially
         transferred files. Using the --partial option tells rsync to keep the partial
         file which should make a subsequent transfer of the rest of the file much faster.

  -P     The -P option is equivalent to --partial --progress.   Its  pur-
         pose  is to make it much easier to specify these two options for
         a long transfer that may be interrupted.

ดังนั้นแทนที่จะ:

sudo rsync -azvv /home/path/folder1/ /home/path/folder2

ทำ:

sudo rsync -azvvP /home/path/folder1/ /home/path/folder2

แน่นอนถ้าคุณไม่ต้องการอัพเดตความคืบหน้าคุณสามารถใช้--partialเช่น:

sudo rsync --partial -azvv /home/path/folder1/ /home/path/folder2

@ สรุปไม่ถูกต้องนัก หากมีการหยุดชะงัก (เครือข่ายหรือด้านรับ) จากนั้นเมื่อใช้ - บางส่วนไฟล์บางส่วนจะถูกเก็บไว้และมันจะใช้เมื่อ rsync จะกลับมาทำงานต่อ จาก manpage: "การใช้ตัวเลือก --partial บอก rsync ให้เก็บไฟล์บางส่วนซึ่งควร <b> ทำการถ่ายโอนไฟล์ที่เหลือต่อมาเร็วกว่านี้มาก </b>
gaoithe

2
@Flimm และ @gaoithe คำตอบของฉันไม่แม่นยำและไม่ทันสมัย ผมได้ปรับปรุงมันสะท้อนให้เห็นถึงรุ่น 3 + rsyncของ สิ่งสำคัญคือต้องเน้นว่าสิ่ง--partialนั้นเองจะไม่สามารถทำการถ่ายโอนที่ล้มเหลวได้ ดูคำตอบของฉันสำหรับรายละเอียด :)
DanielSmedegaardBuus

2
@DanielSmedegaardBuus ฉันลองแล้ว-Pพอในกรณีของฉัน รุ่น: ไคลเอ็นต์มี 3.1.0 และเซิร์ฟเวอร์มี 3.1.1 ฉันขัดจังหวะการถ่ายโอนไฟล์ขนาดใหญ่ไฟล์เดียวด้วย ctrl-c ฉันคิดว่าฉันขาดอะไรไป
guettli

ทำไมvv? เช่นvใช้ 2 ครั้ง?
mrgloom

ที่ rsync บันทึกส่วนของไฟล์ด้วย-azvvP?
mrgloom

1

ฉันคิดว่าคุณกำลังบังคับให้โทรrsyncและดังนั้นข้อมูลทั้งหมดจะถูกดาวน์โหลดเมื่อคุณจำได้อีกครั้ง ใช้--progressตัวเลือกเพื่อคัดลอกเฉพาะไฟล์ที่ไม่ได้คัดลอกและ--deleteตัวเลือกเพื่อลบไฟล์ใด ๆ หากคัดลอกไปแล้วและตอนนี้ไม่มีอยู่ในโฟลเดอร์ต้นทาง ...

rsync -avz --progress --delete -e  /home/path/folder1/ /home/path/folder2

หากคุณใช้ ssh เพื่อเข้าสู่ระบบอื่นและคัดลอกไฟล์

rsync -avz --progress --delete -e "ssh -o UserKnownHostsFile=/dev/null -o \
StrictHostKeyChecking=no" /home/path/folder1/ /home/path/folder2

แจ้งให้เราทราบหากมีความเข้าใจผิดเกี่ยวกับแนวคิดนี้ ...


1
คุณช่วยแก้ไขคำตอบของคุณและอธิบายว่าการโทรพิเศษของคุณทำอะไรได้บ้างและทำไมคุณถึงแนะนำให้ทำ?
Fabien

2
@Fabien เขาบอก rsync ให้ตั้งสองตัวเลือก ssh (rsync ใช้ ssh เพื่อเชื่อมต่อ) อันที่สองบอก ssh ว่าจะไม่พร้อมต์ให้ยืนยันถ้าโฮสต์ที่เขากำลังเชื่อมต่อยังไม่รู้จัก (โดยมีอยู่ในไฟล์ "รู้จักโฮสต์") คนแรกบอก ssh ที่จะไม่ใช้ไฟล์โฮสต์ที่รู้จักเริ่มต้น (ซึ่งจะเป็น ~ / .ssh / known_hosts) เขาใช้ / dev / null แทนซึ่งแน่นอนว่าว่างเปล่าเสมอและเมื่อ ssh ไม่พบโฮสต์ในนั้นปกติจะแจ้งให้ยืนยันดังนั้นตัวเลือกที่สอง เมื่อเชื่อมต่อ ssh เขียนโฮสต์ที่รู้จักกันในขณะนี้ไปยัง / dev / null ลืมมันได้อย่างมีประสิทธิภาพทันที :)
DanielSmedegaardBuus

1
... แต่คุณคงสงสัยว่าเอฟเฟกต์นั้นจะมีผลต่อการทำงานของ rsync หรือไม่ คำตอบคือไม่มี จะทำหน้าที่ไม่ให้มีโฮสต์ที่คุณเชื่อมต่อเพื่อเพิ่มลงในไฟล์โฮสต์ที่รู้จักของ SSH เท่านั้น บางทีเขาเป็นผู้ดูแลระบบมักจะเชื่อมต่อกับเซิร์ฟเวอร์ใหม่จำนวนมากระบบชั่วคราวหรืออะไรก็ตาม ฉันไม่รู้ :)
DanielSmedegaardBuus

4
"ใช้ - ตัวเลือกความคืบหน้าเพื่อคัดลอกเฉพาะไฟล์ที่ไม่ได้คัดลอก" คืออะไร
moi

1
มีข้อผิดพลาดสองสามข้อที่นี่; ไฟล์หนึ่งร้ายแรงมาก: --deleteจะลบไฟล์ในปลายทางที่ไม่มีอยู่ในแหล่งที่มา สิ่งที่ร้ายแรงน้อยกว่าคือ--progressไม่ได้ปรับเปลี่ยนวิธีการคัดลอก มันจะให้รายงานความคืบหน้าแก่คุณในแต่ละไฟล์เมื่อมันถูกคัดลอก (ฉันคงที่ข้อผิดพลาดร้ายแรง; แทนที่มันด้วย--remove-source-files.)
พอล d'Aoust

1

ฉันใช้สคริปต์ง่ายๆนี้ อย่าลังเลที่จะปรับค่าสถานะบางอย่างและ / หรือทำให้เป็นพารามิเตอร์

#!/bin/bash

while [ 1 ]
do
    rsync -avz --partial [source] [dest]:
    if [ "$?" = "0" ] ; then
        echo "rsync completed normally"
        exit
    else
        echo "Rsync failure. Backing off and retrying..."
        sleep 180
    fi
done

1

มาถึงสายนี้ แต่ฉันมีคำถามเดียวกันและฉันพบคำตอบที่แตกต่างกัน

การ--partialตั้งค่าสถานะ ("เก็บไฟล์ที่ถ่ายโอนบางส่วน" rsync -h) มีประโยชน์สำหรับไฟล์ขนาดใหญ่เช่นเดียวกับ--append("ต่อท้ายข้อมูลลงในไฟล์ที่สั้นกว่า") แต่คำถามเกี่ยวกับไฟล์จำนวนมาก

เพื่อหลีกเลี่ยงไฟล์ที่ถูกคัดลอกมาแล้วให้ใช้-u(หรือ--update: "ข้ามไฟล์ที่ใหม่กว่าในตัวรับ")

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