rsync เป็นยูทิลิตีบรรทัดคำสั่งโอเพนซอร์สซึ่งออกแบบมาเพื่อทดแทน rcp (และ scp) แต่มีคุณสมบัติอื่น ๆ อีกมากมาย ใช้ "อัลกอริธึม rsync" ซึ่งเป็นวิธีที่รวดเร็วสำหรับไฟล์ระยะไกลในการซิงค์
โครงการ rsync จะทำงานโดยการส่งเฉพาะความแตกต่างในไฟล์ในลิงก์โดยไม่ต้องระบุว่าไฟล์ทั้งสองชุดมีอยู่ที่ปลายด้านหนึ่งของลิงก์ก่อน
ด้วย rsync ผู้ใช้จะสามารถอัปเดตระบบไฟล์และต้นไม้ไดเรกทอรีทั้งหมดสามารถใช้ซ็อกเก็ต SSH, RSH หรือซ็อกเก็ตโดยตรงในรูปแบบการขนส่งการสะท้อนการสนับสนุนผ่าน rsync ที่ไม่ระบุชื่อและการเก็บรักษาลิงก์สัญลักษณ์การเป็นเจ้าของไฟล์การเชื่อมโยงอย่างหนัก, สิทธิ์, เวลาและอุปกรณ์
มีอะไรใหม่ ในรุ่นนี้
มีอะไรใหม่ ในรุ่น:
- นี่คือการแก้ไขข้อบกพร่อง ซึ่งจะรวมถึงการแก้ไขความปลอดภัยสำหรับการถ่ายโอนจากผู้ส่งที่คุณไม่ไว้ใจอย่างเต็มที่
- การเปลี่ยนแปลงเอาท์พุท:
- แสดงผลตัวเลขเป็นกลุ่ม 3 หลักตามค่าเริ่มต้น (เช่น 1,234,567) ดูตัวเลือก - มนุษย์ที่อ่านได้สำหรับวิธีที่จะปิด ดูรูปแบบบันทึกของ daemon & quot; พารามิเตอร์และตัวเลือกบรรทัดคำสั่งที่เกี่ยวข้อง (รวมถึง --out-format) สำหรับตัวปรับค่าที่สามารถใช้เพื่อร้องขอการจัดกลุ่มหลักหรือการแสดงผลที่มนุษย์สามารถอ่านได้ใน log escapes (โปรดทราบว่าการบันทึกเป็นค่าเริ่มต้นไม่เปลี่ยนแปลงตามค่าเริ่มต้น)
- ตัวเลือก The -list-only ได้รับผลกระทบจากการตั้งค่า - มนุษย์ที่สามารถอ่านได้ จะแสดงกลุ่มหลักตามค่าเริ่มต้นและต่อท้ายของยูนิตหากต้องการการอ่านที่สูงขึ้น นอกจากนี้ความกว้างของคอลัมน์สำหรับเอาต์พุตขนาดเพิ่มขึ้นจาก 11 ถึง 14 อักขระเมื่อเปิดใช้งานการอ่านง่ายของมนุษย์ ใช้ --no-h เพื่อรับเอาต์พุตแบบเดิมและขนาดของคอลัมน์
- ผลลัพธ์ของตัวเลือก - ตัวค้านเปลี่ยนไปแล้ว: สตริง & quot; xfer & quot; ถูกตัดให้สั้นลงไปที่ & quot; xfr & quot; และสตริง & quot; ตรวจสอบ & quot; ถูกย่อให้เป็น & quot; to-chk & quot; ทั้งสองแบบนี้ออกแบบมาเพื่อให้มีพื้นที่ว่างสำหรับการแสดงขนาดไฟล์โดยค่าเริ่มต้น (โดยค่าเริ่มต้น) โดยไม่ทำให้ความยาวสายรวมยาวขึ้น นอกจากนี้เมื่อมีการเปิดใช้งานการทับซ้ำที่เพิ่มขึ้นสตริง "ir-chk & quot; จะใช้แทน & quot; to-chk & quot; จนกว่าจะมีการสแกนซ้ำที่เพิ่มขึ้นทำให้คุณทราบว่าค่าที่จะตรวจสอบและค่าทั้งหมดจะยังคงเพิ่มขึ้นเมื่อมีการค้นพบไฟล์ใหม่
- BUG FIXES:
- แก้ไขข้อผิดพลาดในโค้ด iconv เมื่อ EINVAL หรือ EILSEQ ถูกส่งกลับพร้อมกับบัฟเฟอร์เอาต์พุตเต็มรูปแบบ
- แก้ไขข้อผิดพลาดบางอย่างใน --iconv ที่อาจทำให้อักขระหลายรายการได้รับการแปลไม่ถูกต้อง
- แก้ไขไฟล์ที่ปลอมแปลง & quot; ไฟล์หายไป & quot; ข้อผิดพลาดถ้าไฟล์บางไฟล์ถูกระบุด้วย & quot; ./& quot; คำนำหน้าและอื่น ๆ ไม่ได้
- แก้ไขข้อบกพร่องใน - แยกแยะที่ช่องว่างที่เพิ่มขึ้นหลังจากเขียนบางส่วน
- เปลี่ยนวิธี - ตัวเขียนจะเขียนทับเอาต์พุตก่อนหน้านี้เพื่อทำให้แทบจะเป็นไปไม่ได้สำหรับความคืบหน้าในการเขียนทับโดยข้อผิดพลาด
- ปรับปรุงการแพร่กระจายข้อความผิดพลาดที่ผิดปกติออกไป วิธีนี้จะช่วยให้ฝั่งไคลเอ็นต์ได้รับข้อผิดพลาดจากเซิร์ฟเวอร์เมื่อออกจากระบบอย่างผิดปกติและควรหลีกเลี่ยงการตายด้วยการเชื่อมต่อที่ไม่คาดคิด & quot; ออกเมื่อคาดว่าจะมีการเชื่อมต่อแบบปิด
- ผู้ส่งจะตรวจสอบไฟล์แต่ละไฟล์ที่วางแผนจะลบออกเพื่อให้แน่ใจว่าไม่ได้เปลี่ยนจากข้อมูลสถิติแรก วิธีนี้จะช่วยหลีกเลี่ยงการสูญเสียข้อมูลไฟล์เมื่อผู้ใช้ไม่ได้ใช้ตัวเลือกนี้อย่างปลอดภัย
- แก้ไขข้อผิดพลาดในการทำสำเนาข้อมูลในตัวเลือกการบีบอัดที่ทำให้การบีบอัดมีประสิทธิภาพน้อยลง โปรโตคอลนี้จะช่วยปรับปรุงโปรโตคอล 31 ขึ้นไปในขณะที่ทำงานในลักษณะที่เข้ากันได้ (buggy) กับโปรโตคอล rsync ที่เก่ากว่า
- ขณะสร้างไฟล์ temp rsync เป็นข้อมูลที่ชาญฉลาดมากขึ้นเกี่ยวกับตัวเลือก dot-char ซึ่งสามารถแก้ไขปัญหาบน OS X โดยใช้ชื่อที่ขึ้นต้นด้วย & quot; .. & quot;
- Rsync ตั้งค่าสถานะการล้างข้อมูลแล้วสำหรับ --inplace และ --append transfers ที่จะล้างบัฟเฟอร์การเขียนถ้าการโอนย้ายล้มเหลว เพื่อให้แน่ใจว่าข้อมูลที่ได้รับจะถูกเขียนลงในดิสก์ในการถ่ายโอนที่ถูกยกเลิก (ซึ่งเป็นประโยชน์ในการเชื่อมต่อที่เป็นไปอย่างช้าและไม่สม่ำเสมอ)
- การอ่านว่า map_ptr () ตอนนี้มีการจัดแนวให้สอดคล้องกับขอบเขต 1K ซึ่งจะช่วยให้ระบบไฟล์และ / หรือไฟล์บางอย่างที่ไม่ชอบอ่านแบบไม่อ่าน
- แก้ไขปัญหาในฟังก์ชัน msleep () หากเวลาถอยไปข้างหลัง
- แก้ไขข้อผิดพลาดในการแยกชื่อเซิร์ฟเวอร์ - ภูตย่อยที่อาร์กิวเมนต์จะได้รับการแบ่งแม้ว่าจะมีการใช้ตัวป้องกันอาร์กิวเมนต์
- อุป:
- เพิ่มตัวเลือกบรรทัดคำสั่ง --remote-option = OPT (-M OPT) ที่เป็นประโยชน์สำหรับสิ่งต่างๆเช่นการส่งไฟล์จากระยะไกล --loger = FILE หรือ --fake-super option.
- เพิ่มข้อมูล --info = FLAGS และ --debug = FLAGS เพื่อให้สามารถควบคุมสิ่งที่เป็นผลลัพธ์ได้ดียิ่งขึ้น เพิ่มเอาต์พุต - เอาต์พุตพิเศษโดยใช้ --info = progress2.
- ตัวเลือก --msgs2stderr สามารถช่วยแก้ปัญหาการแก้จุดบกพร่อง rsync โดยอนุญาตให้ข้อความการแก้ปัญหาส่งออกไปยัง stderr แทนที่จะเดินทางผ่านโปรโตคอลซ็อกเก็ต
- เพิ่มตัวเลือก --delete-missing-args และ --ignore-missing-args เพื่อลบหรือละเว้นไฟล์ที่ผู้ใช้ระบุในเครื่องรับที่ขาดหายไปในผู้ส่ง (โดยปกติแล้วกรณีที่ไม่มีไฟล์ที่ผู้ใช้ระบุจะสร้างไฟล์ ข้อผิดพลาด).
- เพิ่มคำ & quot; T & quot; (เทราไบต์) ไปยังส่วนต่อท้ายขนาดที่อ่านได้ของมนุษย์
- เพิ่มตัวเลือก - usermap / - groupmap / - chown เพื่อจัดการความเป็นเจ้าของไฟล์ระหว่างการคัดลอก
- เพิ่มเครื่องหมาย & quot;% C & quot; หนีไปที่การจัดการบันทึกเอาท์พุทซึ่งจะส่งออกไฟล์ MD5 checksum ของไฟล์ที่โอนย้ายหรือไฟล์ทั้งหมดถ้ามีการระบุ checksum (เมื่อโพรโทคอล 30 หรือสูงกว่ามีผล)
- เพิ่ม & quot; การค้นหาแบบย้อนกลับ & quot; พารามิเตอร์ไปยังไฟล์ config rsync daemon เพื่ออนุญาตให้มีการปิดใช้งานการค้นหา DNS แบบย้อนกลับ
- เพิ่มการค้นหา DNS ไปข้างหน้าสำหรับโฮสต์ของ daemon อนุญาต / ปฏิเสธ config สามารถใช้งานได้ผ่านทาง & quot; การค้นหาแบบย้อนกลับ & quot; พารามิเตอร์ (ค่าเริ่มต้นเปิดใช้งาน)
- เพิ่มวิธีการระบุกลุ่มมากกว่าหนึ่งกลุ่มในไฟล์ config ของ daemon รวมทั้งวิธีระบุว่าคุณต้องการให้กลุ่มผู้ใช้ทั้งหมดที่ระบุโดยไม่ต้องตั้งชื่อ นอกจากนี้ยังมีการเปลี่ยนแปลง daemon เพื่อบ่นเกี่ยวกับการไม่สามารถตั้งค่า uid / gid ที่ระบุอย่างชัดเจนแม้ว่าจะไม่ได้รันโดยผู้ใช้ super ก็ตาม
- ขณะนี้ daemon พยายามส่งข้อความแสดงข้อผิดพลาดจากสคริปต์ exec pre-xfer เมื่อผู้ใช้ล้มเหลว
- ปรับปรุงการใช้ตัวเลือก alt-dest ในลำดับชั้นของไฟล์ที่มีอยู่แล้ว: หากพบการจับคู่ใน alt-dir จะมีผลเหนือกว่าไฟล์ที่มีอยู่ (เราจะต้องรอเวอร์ชันในอนาคตก่อนที่การเปลี่ยนแปลงแอตทริบิวต์ในไฟล์ที่ไม่มีการเปลี่ยนแปลงอื่น ๆ จะปลอดภัยเมื่อใช้ลำดับชั้นที่มีอยู่)
- เพิ่มตัวเลือกการให้สิทธิ์ต่อผู้ใช้แต่ละรายและการให้สิทธิ์การให้สิทธิ์กลุ่มแก่ผู้ใช้ที่เป็นผู้ใช้ 'auth & quot; ของ daemon พารามิเตอร์.
- เพิ่มวิธีการอ้างอิงตัวแปรสภาพแวดล้อมในไฟล์ config ของ daemon (ใช้การอ้างอิง% VAR%)
- เมื่อแทนที่ไฟล์ที่ไม่ใช่ dir ด้วยไฟล์ symlink / hard-link / device / special-file การอัปเดตควรทำในรูปแบบอะตอม
- หลีกเลี่ยงการส่งข้อมูล xattr สำหรับไฟล์ที่เชื่อมต่อยากด้วย xattrs เดียวกัน (โปรโตคอล 31)
- รหัสสำรองถูกปรับปรุงเพื่อใช้ตรรกะที่ดีขึ้นในการรักษาลำดับชั้นไดเรกทอรีสำรอง นอกจากนี้เมื่อมีการสำรองไฟล์ไว้ rsync จะพยายามเชื่อมโยงฮาร์ดไดรฟ์เข้ากับตำแหน่งเพื่อให้การแทนที่ไฟล์ปลายทางที่จะมาถึงจะเป็นแบบอะตอม (สำหรับตรรกะปกติที่ไม่สามารถใช้งานได้)
- เพิ่มความสามารถในการซิงค์ nano-second modified times.
- เพิ่มคำต่อท้ายที่เป็นค่าเริ่มต้นอีกสองสามแบบสำหรับส่วน & quot; บีบอัด dont & quot; การตั้งค่า.
- เพิ่มการตรวจสอบตัวแปรสภาพแวดล้อม RSYNC_PROTECT_ARGS เพื่อให้สามารถแทนที่ค่าเริ่มต้นสำหรับตัวเลือกบรรทัดคำสั่งป้องกัน - args
- เพิ่มตัวเลือกบรรทัดคำสั่ง --opreocate.
- อนุญาต --password-file = - อ่านรหัสผ่านจาก stdin (ชื่อไฟล์ & quot; - & quot;)
- Rsync มาพร้อมกับสคริปต์ผู้ช่วย rsync-ssl ที่สามารถใช้ติดต่อกับรีโมต rsync daemon โดยใช้คำสั่ง stunnel แบบท่อ นอกจากนี้ยังมีไฟล์ config stunnel เพื่อเรียกใช้ฝั่งเซิร์ฟเวอร์เพื่อสนับสนุนการเชื่อมต่อเดมอน ssl ดูไฟล์บรรจุภัณฑ์ / lsb / rsync.spec สำหรับวิธีหนึ่งในการจัดแพคเกจไฟล์ที่ได้ (คำแนะนำสำหรับการทำให้การติดตั้งและการใช้งานง่ายขึ้นได้รับการต้อนรับ)
- ปรับปรุงความเร็วของการอัปเดตบางอย่างในบ้านเมื่อมีบล็อคการตรวจสอบเหมือนกันมากมายที่ไม่สามารถใช้งานได้
- เพิ่มตัวเลือก --outbuf = N | L | B สำหรับเลือกบัฟเฟอร์เอาต์พุต
- การทำซ้ำตัวเลือก - ฟัซซี่จะทำให้โค้ดค้นหาคำค้นหาเลือนภายในไดเรกทอรี alt-dest เกินไป
- ตัวเลือก --chmod สนับสนุนโหมดตัวเลขเช่น --chmod = 644, D755
- เพิ่มรหัส Xattr ของ Solaris แล้ว
- สร้างภูต rsync (กระบวนการฟัง) ออกโดยมีสถานะเป็น 0 เมื่อสัญญาณถูกสังหารตาย การดำเนินการนี้ช่วยให้ launchd
- ปรับปรุงตัวแปรสภาพแวดล้อม RSYNC_ * สำหรับสคริปต์ exec pre-xfer exec: เมื่อ daemon ถูกส่ง args คำขอหลาย ๆ ค่าจะถูกรวมเข้ากับค่าที่ส่งคืนเดียว (คั่นด้วยช่องว่าง) เพื่อให้ตัวแปรสภาพแวดล้อม RSYNC_REQUEST มีความถูกต้องสำหรับ & quot; ผู้บริหาร pre-xfer & quot; ค่าใน RSYNC_ARG # vars จะไม่ถูกตัดทอนอีกต่อไปที่ & quot;. & quot; arg (ก่อนไฟล์ dirs / ไฟล์) เพื่อให้ค่าที่ร้องขอทั้งหมดมีการระบุไว้ (แยกกัน) ใน RSYNC_ARG # ตัวแปร
- พิเศษ:
- เพิ่ม "rsyncd ทันที" & quot; สคริปต์ไปยังไดเร็กทอรีการสนับสนุนซึ่งทำให้สามารถกำหนดค่าภูต rsync แบบง่ายในไดเร็กทอรีปัจจุบัน
- เพิ่ม & quot; mapfrom & quot; และ & quot; mapto & quot; สคริปต์ไปยังไดเร็กทอรีการสนับสนุนซึ่งช่วยให้สามารถทำแผนที่ผู้ใช้ / กลุ่มในการโอนย้ายแบบโลคัลโดยใช้ไฟล์ passwd / group จากเครื่องอื่นได้
- มีสคริปต์เวอร์ชัน lsh ใหม่ที่ปรับปรุงแล้วใน dir สนับสนุน: มีการเขียนโดย perl และสนับสนุน -u โดยไม่ต้องใช้ sudo (เมื่อเรียกใช้เป็น root) เวอร์ชันเปลือกเก่ามีชื่อว่า lsh.sh
- มีสคริปต์ผู้ช่วยเหลือชื่อ rsync-slash-strip ในไดเร็กทอรีการสนับสนุนสำหรับทุกคนที่ต้องการเปลี่ยนวิธีที่ rsync จัดการ args กับ slashes ต่อท้าย (เช่น arg / จะถูกตัดไปเป็น arg ขณะที่ arg / จะเปลี่ยนเป็น arg /) ./ li>
- ภายใน:
- รหัส I / O ถูกเขียนใหม่เพื่อให้ง่ายและอ่านข้อมูล buffered ที่ใหญ่กว่าซ็อกเก็ต I / O ระหว่างเครื่องรับและเครื่องกำเนิดไฟฟ้าถูกเปลี่ยนเป็นมาตรฐาน multiplexed-I / O (เช่นที่ผ่านซ็อกเก็ต)
- ผู้ส่งพยายามใช้เวลาตายใด ๆ ในขณะที่เครื่องกำเนิดไฟฟ้ากำลังมองหาไฟล์ที่จะโอนเพื่อที่จะทำการสแกนไดเรกทอรีของผู้ส่งแบบขนานมากขึ้น
- เดมอนสามารถแจ้งให้ลูกค้าทราบเกี่ยวกับค่าหมดเวลาที่กำหนดโดย daemon เพื่อให้ไคลเอ็นต์สามารถช่วยกิจกรรม keep-alive (โปรโตคอล 31)
- โค้ดตัวกรองได้รับรีมาร์เก็ตติ้งบางส่วนเพื่อให้สามารถขยายได้อ่านดีขึ้นและตรวจสอบความถูกต้องได้ดีขึ้น
- ตัวเลขที่มากจริงๆจะถูกส่งออกโดยใช้รูทีน big-num ของเราแทนที่จะส่งให้เป็นคู่และใช้การแปลง% .0f
- ไลบรารี pool_alloc ได้รับการปรับปรุงเล็กน้อยในการจัดการการจัดตำแหน่ง
- เพิ่มฟังก์ชัน init_stat_x () เพื่อไม่ให้ซ้ำซ้อนกับโค้ด init acl / xattr
- รวม zlib ที่มีอยู่ได้รับการอัปเกรดจาก 1.2.3 เป็น 1.2.8
- ขณะนี้คุณสามารถคอมไพล์ Rsync เพื่อใช้ไลบรารี zlib ที่ไม่มีการแก้ไขแทนการปรับแต่งที่มีอยู่ใน rsync ซึ่งในที่สุดจะกลายเป็นค่าเริ่มต้นเมื่อถึงจุดนี้เราจะเริ่มการนับถอยหลังเพื่อลบ zlib ที่รวมไว้ ก่อนหน้านี้คุณสามารถกำหนดค่าได้โดยใช้
- ./ configure --with-included-zlib = no
- นักพัฒนาซอฟต์แวร์ที่เกี่ยวข้อง:
- เพิ่มเอาต์พุตการแก้ปัญหาเพิ่มเติมตามเงื่อนไขแล้ว
- แก้ไขปัญหาเกี่ยวกับการสร้างสำหรับ Android และ Minix
- แก้ไขข้อผิดพลาดของความผิดพลาดในการตรวจสอบ checksum เมื่อ --inplace ถูกนำมาใช้
- แก้ไขการรักษาระบบ xattrs ของ symlink (เช่น selinux) บน Linux
- แก้ไขข้อบกพร่องด้วยการแก้ไขไดเร็กทอรีที่ไม่สามารถถอดออกได้
- แก้ไข - ปฏิสัมพันธ์ของ fake-super กับการเปรียบเทียบไฟล์เดียวกัน -link-dest
- แก้ไขการอัปเดตบัฟเฟอร์ curr_dir เพื่อหลีกเลี่ยงเครื่องหมายทับที่ซ้ำกัน
- ทำให้ข้อผิดพลาดเกี่ยวกับไฟล์ daemon-exclusured error มีข้อผิดพลาดเหมือนกันมากขึ้น
- แก้ไขปัญหาบางอย่างเกี่ยวกับการประมวลผลโพสต์หน้า man page
- BUG FIXES:
- แก้ไขปัญหาบัฟเฟอร์ล้น 2 เรื่อง: หนึ่งที่ไม่ได้จัดการเส้นทางไดเรกทอรีอย่างถูกต้อง MAXPATHLEN และหนึ่งในการจัดการ --backup-dir ซึ่งมีขนาดใหญ่พิเศษ
- แก้ไขปัญหาการทุจริตในการเข้าใช้ข้อมูลในขณะที่รักษา hard-links โดยไม่ต้องรักษาความเป็นเจ้าของไฟล์และทำลบทั้งก่อนหรือระหว่างการโอน การดำเนินการนี้จะแก้ไขข้อผิดพลาดบางอย่างในโค้ดที่เชื่อมโยงยากและ checksums ที่อาจเกิดขึ้น (ผ่านทาง -c) ที่ควรได้รับการจับคู่
- แก้ไขข้อขัดข้องที่อาจเกิดขึ้นเมื่อภูต rsync มีรายการตัวกรอง / ไม่รวมและการถ่ายโอนกำลังใช้ ACL หรือ xattrs
- ตรึงแฮงค์ไว้หากมีการประมวลผลไฟล์ที่ใหญ่มากโดย rsync ที่ไม่สามารถจัดการหมายเลข 64 บิตได้ Rsync จะบ่นเกี่ยวกับไฟล์ที่ใหญ่เกินไปและข้ามไป
- สำหรับอุปกรณ์และไฟล์พิเศษตอนนี้เราจะหลีกเลี่ยงการรวบรวมข้อมูล ACL และ / หรือ Xattr ที่ไร้ประโยชน์สำหรับไฟล์ที่ไม่ได้คัดลอก (ไฟล์ยกเลิกการคัดลอกจะยังคงอยู่ในรายการไฟล์ แต่ไม่จำเป็นต้องรวบรวมข้อมูลที่ไม่ได้ใช้ไป) เพื่อให้มั่นใจว่าหากผู้ใช้ใช้ --no-D rsync อาจไม่สามารถบ่นได้ เกี่ยวกับการไม่สามารถรวบรวมข้อมูลเพิ่มเติมจากไฟล์พิเศษที่อยู่ในรายการไฟล์ (แต่ไม่ใช่ในการถ่ายโอน)
- จัดการอย่างถูกต้องเพื่อขอชื่อไฟล์ระยะไกลที่ขึ้นต้นด้วยเครื่องหมายขีดคั่น วิธีนี้จะหลีกเลี่ยงข้อผิดพลาดที่อาจเป็นไปได้ที่ชื่อไฟล์อาจถูกตีความว่าเป็นตัวเลือก (โดยปกติไม่ถูกต้อง)
- แก้ไขข้อบกพร่องในการเปรียบเทียบตัวพิมพ์ใหญ่ในส่วนต่อท้ายของไฟล์สำหรับ --skip-compress
- ถ้าภูต rsync มีโมดูลที่กำหนดค่าโดยไม่มีการตั้งค่าเส้นทาง rsync จะไม่อนุญาตให้เข้าถึงโมดูลดังกล่าว
- ถ้าอาร์กิวเมนต์ปลายทางเป็นสตริงที่ว่างเปล่าจะถือว่าเป็นการอ้างอิงไปยังไดเร็กทอรีปัจจุบัน (เป็น 2.x ที่ใช้ทำ)
- ถ้า rsync ถูกคอมไพล์ด้วยฟังก์ชั่นการตั้งเวลาใหม่ (เช่น lutimes) rsync จะถอยกลับไปยังฟังก์ชันที่เก่ากว่า (เช่น utimes) ในระบบที่ไม่มีฟังก์ชันใหม่กว่า วิธีนี้จะช่วยให้ไบนารี rsync สามารถพกพาได้ง่ายขึ้นในสถานการณ์ที่มีการผสม OS-release
- แก้ไขข้อผิดพลาดในการเขียนแบทช์ไฟล์ซึ่งจะไม่เขียนชุดธงความเข้ากันได้ทั้งหมดที่ใช้ในการถ่ายโอน วิธีนี้จะแก้ไขปัญหาโปรโตคอลที่อาจเกิดขึ้นสำหรับไฟล์แบทช์ที่มีข้อผิดพลาด I / O ฝั่งผู้ส่ง: จะได้รับการส่งในลักษณะที่เครื่องอ่านแบทช์ไม่ได้คาดหวัง
- การปรับปรุงโค้ดการเชื่อมโยงที่ยากเพื่อให้แน่ใจว่าหมายเลขรหัสอุปกรณ์ทำงานได้ดีและให้ข้อมูลเพิ่มเติมหากโค้ดเชื่อมโยงล้มเหลว
- รหัส --inplace ได้รับการปรับปรุงเพื่อไม่ให้ค้นหาตำแหน่ง checksum ที่เป็นไปไม่ได้ ข้อความที่สี่ตอนนี้จะพูดถึงเมื่อมีการค้นหาสิ่งที่ไม่เป็นที่ต้องการมากกว่าการอ่าน + เขียน
- หากเราไม่สามารถเชื่อมต่อกับภูต rsync ให้รายงานข้อผิดพลาดในการเชื่อมต่อทั้งหมด (เช่น IPv4 และ IPv6) ไม่ใช่เฉพาะ
- การจัดการหน้ากาก ACL ที่ปรับปรุงใหม่เช่น สำหรับ Solaris
- แก้ไขปัญหาที่การถ่ายโอนข้อมูล xattr และ / หรือ ACL ที่ใช้ตัวเลือก alt-dest (เช่น - link-dest) อาจทำให้เกิดข้อผิดพลาดในการพยายามระบุรายละเอียดการเปลี่ยนแปลงกับข้อมูล xattr / ACL ของ alt-dest directory แต่ได้รับการแก้ไขแล้ว แทนที่จะพยายามเข้าถึงไดเรกทอรีปลายทางใหม่ที่ยังไม่ได้ใช้งานอยู่
- ปรับปรุงข้อความ xattr system-error เพื่อพูดถึงเส้นทางแบบเต็มไปยังไฟล์
- การตรวจสอบว่าลิงก์ที่เหมือนกันในขณะนี้ช่วยหลีกเลี่ยงการพิจารณาความแตกต่างของแอตทริบิวต์ที่ไม่สามารถเปลี่ยนแปลงได้ที่ผู้รับ
- หลีกเลี่ยงการพยายามอ่าน / เขียน xattrs ในบางไฟล์สำหรับ OSes บางระบบ กำหนดค่า NO_DEVICE_XATTRS และ / หรือ NO_SPECIAL_XATTRS ใน config.h โดยละเอียดแล้ว
- ปรับปรุงข้อความแสดงข้อผิดพลาดที่ไม่ปลอดภัยต่อลิงก์เชื่อมโยงไปถึง
- แก้ไขข้อผิดพลาดในการตั้งค่า xattrs ในไฟล์ใหม่ที่ผู้ใช้ไม่สามารถเขียนได้
- แก้ไขข้อบกพร่องด้วย - fake-super เมื่อคัดลอกไฟล์และ dirs ที่ผู้ใช้ไม่สามารถเขียนได้
- แก้ไขข้อบกพร่องที่ไฟล์ที่กระจัดกระจายอาจมีบล็อกเบาบางครั้งสุดท้ายกลายเป็นบล็อกจริงเมื่อ rsync กำหนดขนาดไฟล์ (ต้องใช้ ftruncate)
- หากชื่อไฟล์ชั่วคราวยาวเกินไป rsync จะหลีกเลี่ยงการตัดชื่อในกึ่งกลางของอักขระบิตสูงติดกัน วิธีนี้จะป้องกันไม่ให้เกิดข้อผิดพลาดเกี่ยวกับชื่อไฟล์หากระบบไฟล์ไม่อนุญาตให้ชื่อมีลำดับหลายไบต์ที่ไม่ถูกต้อง
- หากการเชื่อมต่อซ็อกเก็ต muli-protocol ล้มเหลว (เช่นเมื่อติดต่อเดมอน) ตอนนี้เราจะรายงานความล้มเหลวทั้งหมดไม่ใช่เฉพาะครั้งล่าสุด วิธีนี้จะหลีกเลี่ยงการสูญเสียข้อผิดพลาดที่เกี่ยวข้อง (เช่นการเชื่อมต่อ IPv4 - ปฏิเสธข้อผิดพลาด) ที่เกิดขึ้นก่อนข้อผิดพลาดขั้นสุดท้าย (เช่นข้อผิดพลาดที่โปรโตคอลไม่สนับสนุน IPv6)
- สร้างข้อผิดพลาดในการโอนย้ายหากเราพยายามเรียก chown ด้วย -1 สำหรับ uid หรือ gid (ซึ่งไม่สามารถตั้งค่าได้)
- แก้ไขไฟล์ที่มีระบบไฟล์เพียงอย่างเดียว
- แก้ไขการแยกวิเคราะห์ popt arg เพื่อให้ตัวเลือกที่ไม่ใช้อาร์กิวเมนต์จะปฏิเสธความพยายามที่จะจัดหา
- ตัวเลือกเล็ก ๆ น้อย ๆ สองตัวปรับแต่งเพื่อสนับสนุนสคริปต์ rrsync และการเปลี่ยนแปลง regex บางอย่างที่ทำให้ไฮไลต์เป็นกลุ่มที่มีความสุขมากขึ้น
- แก้ไขปัญหาบางอย่างในสคริปต์การสนับสนุน / mnt-excl
- ปรับปรุง manpage ไม่กี่ครั้ง
- อุป:
- เพิ่ม & quot; .hg / & quot; ไปยัง cv ที่เป็นค่าเริ่มต้นยกเว้น (ดู -C & --cvs-exclude)
- นักพัฒนาซอฟต์แวร์ที่เกี่ยวข้อง:
- ใช้ lchmod () เมื่อใดก็ตามที่พร้อมใช้งาน (ไม่ใช่แค่ลิงก์แบบ symlink)
- คู่แก้ไขข้อบกพร่องของ socketpair_tcp ()
- อัปเดตสคริปต์ผู้ช่วยในไดเรกทอรีย่อยของบรรจุภัณฑ์
- เปลี่ยนชื่อ configure.in เป็น configure.ac
- แก้ไขชุดข้อมูล - ชุดการอ่านอย่างต่อเนื่องเมื่อ rsync กำลังอ่านไฟล์แบทช์ที่สร้างขึ้นจากการโอนย้ายการทับซ้ำแบบเพิ่มทวีคูณ
- แก้ไขรหัสซ็อกเก็ตของ daemon เพื่อจัดการการเชื่อมต่อหลาย ๆ แบบพร้อมกัน
- แก้ไข - ปลอดภัยลิงก์ / - คัดลอกลิงก์ที่ไม่ปลอดภัยเพื่อจัดการกับ symlinks ที่มีเครื่องหมายทับติดต่อกันอย่างถูกต้อง
- แก้ไขการแยกวิเคราะห์ [IPv6_LITERAL_ADDR] เมื่อมีคำนำหน้า USER @
- ผู้ส่งข้ามพร็อพเพอร์ตี้ symlink (ปลอม) ที่มีค่าเป็น 0 ซึ่งช่วยหลีกเลี่ยงข้อผิดพลาดในการรับส่งข้อมูลในเครื่องรับ
- แก้ไขกรณีที่ผู้ส่งสามารถตายได้โดยมีข้อผิดพลาด tag-0 หากมี I / O ระหว่างการส่งรายการไฟล์
- แก้ไขสคริปต์ rrsync เพื่อหลีกเลี่ยงปัญหาฝั่งเซิร์ฟเวอร์เมื่อ e- อยู่ในช่วงเริ่มต้นของตัวเลือกสั้น ๆ
- แก้ไขปัญหาที่ไดเร็กทอรีที่หายไปอาจเปลี่ยนเป็นรหัสทางออก 23 แทนรหัสทางออกที่ 24 ได้
- แก้ไขการแปลงข้อมูล symlink เมื่อใช้งานสำเนาภายในเครื่อง
- แก้ไขปัญหาในกรณีที่ - one-file-system ไม่ได้หยุดการลบในฝั่งรับข้อมูลเมื่อไดเร็กทอรี mount-point ไม่ตรงกับไดเร็กทอรีในการโอน
- แก้ไขการวางหน้ากาก ACL เมื่อไม่มีค่า ACL ที่ระบุอยู่
- แก้ไขปัญหาการทุจริต ACL / xattr ที่ตัวเลือกการสำรองข้อมูลอาจทำให้ rsync เชื่อมโยงข้อมูล ACL / xattr กับไฟล์ที่ได้รับไม่ถูกต้อง
- แก้ไขการใช้ --xattrs โดยใช้ - only-write-batch
- แก้ไขการใช้ --dry-run with --read-batch
- กำหนดเป้าหมายการใช้งานที่ผิดพลาดของค่ากำหนด
- กำหนดค่าคอนฟิกูเรชัน - ปิดใช้งานการแก้ไขข้อบกพร่อง
- แก้ไขปัญหาเกี่ยวกับรันไทม์สำหรับระบบที่ไม่สามารถหา iconv_open () ได้โดยการเพิ่มตัวเลือกการกำหนดค่า --disable-iconv-open
- บ่นและตายหากผู้ใช้พยายามรวม - ลบไฟล์ต้นฉบับ (หรือเลิกใช้งาน - นำส่งไฟล์) ด้วย --read-batch
- แก้ไขการโอนย้ายไฟล์พิเศษจาก Solaris ไปยัง Linux
มีอะไรใหม่ ในเวอร์ชัน 3.1.0:
(โปรโตคอล & gt; = 28), 2) พูดถึงจำนวนไฟล์ที่ถูกลบ (บรรทัดใหม่สำหรับโปรโตคอล 31 แต่จะแสดงเฉพาะเมื่อ - ลบมีผล) และ 3) ปฏิบัติตามจำนวนไฟล์นับสร้างและลบนับด้วยรายการย่อยที่แสดงการนับตามประเภท คำพูดของจำนวนการโอนยังมีการเปลี่ยนแปลงเพื่อให้ชัดเจนว่าเป็นเพียงไฟล์นับเป็นจำนวนมากเท่านั้น
มีอะไรใหม่ ในเวอร์ชัน 3.0.9 Pre1:
มีอะไรใหม่ ในเวอร์ชัน 3.0.8 Pre1:
มีอะไรใหม่ ในเวอร์ชัน 3.0.6:
ความคิดเห็นที่ไม่พบ