1. ปัญหาเกี่ยวกับอักขระพิเศษในชื่อไฟล์
มีอักขระพิเศษในชื่อไฟล์หรือไม่ ขึ้นอยู่กับระบบไฟล์ที่คุณกำลังเขียนไฟล์เหล่านี้พวกเขาอาจไม่อนุญาตให้คุณนำหน้าไฟล์ด้วยจุด ( .
)
2. ปัญหาเกี่ยวกับเวลาการแก้ไข rsync และ webdav2
ฉันเจอโพสต์บล็อกนี้ซึ่งมีการอธิบายปัญหาโดยrsync
มีปัญหาเวลาเขียน / ติดตามไฟล์การแก้ไขในไดเรกทอรี web.com
ปัญหาปรากฏขึ้นเช่นนี้ในระบบไฟล์ติดตั้ง:
david@sydney:~/Pictures$ ls -l /mnt/box/bwca/08/09/IMG_3084.CR2
-rw-r--r-- 1 david david 12564061 Aug 14 16:08 /mnt/box/bwca/08/09/IMG_3084.CR2
david@sydney:~/Pictures$ ls -l 2012/08/09/IMG_3084.CR2
-rw-rw-r-- 1 david david 12564061 Aug 9 13:00 2012/08/09/IMG_3084.CR2
บทความเดียวกันนั้นแสดงวิธีแก้ปัญหา:
$ rsync -avhP --size-only --bwlimit=64 2012/08 /mnt/box/bwca/
นี่เป็นวิธีการใช้ที่ใช้ได้rsync
แต่เพียงเปรียบเทียบไฟล์ตามขนาดในตอนนี้ไม่ใช่การตรวจสอบไฟล์
3. ปัญหาเกี่ยวกับ davfs2 (WebDAV)
ฉันเจอหัวข้อนี้: rsync ผ่าน davfs2 หรือไม่ ในฟอรัม WebDAV (davfs) บน on sourceforge มีคนสอบถามเกี่ยวกับสถานการณ์ที่คล้ายกันซึ่งพวกเขาต้องการใช้ WebDAV เพื่อติดตั้งผู้ให้บริการพื้นที่เก็บข้อมูลออนไลน์และดำเนินการ rsync กับพื้นที่เก็บข้อมูลที่ติดตั้งผ่าน WebDAV นี่คือสิ่งที่หนึ่งในนักพัฒนา (Werner Baumann) ของ WebDAV ได้พูดเกี่ยวกับหัวข้อนี้
ตัดตอนมาจากคำตอบของเวอร์เนอร์
davfs2 จะอัปโหลดไฟล์ที่สมบูรณ์เท่านั้น ไม่สามารถทำสิ่งที่เพิ่มขึ้นตามปกติ rsync และทำให้ rsync มีประสิทธิภาพมาก
davfs2 ใช้แคชบนดิสก์ สิ่งนี้จะทำให้ตอบสนองได้ดีขึ้นและใบสมัครของคุณก็ควรได้รับประโยชน์เช่นกัน แต่มันต้องการพื้นที่ดิสก์ในเครื่องสำหรับสิ่งนี้ คุณควรอนุญาตให้มีขนาดแคชขนาดใหญ่ดังนั้น rsync จึงสามารถทำงานกับแคชในเครื่องได้ส่วนใหญ่และ davfs2 จะอัปโหลดไฟล์ส่วนใหญ่ในพื้นหลังเมื่อ rsync เสร็จสิ้นแล้ว
เวอร์เนอร์ยังคงแนะนำต่อไปนี้
นี่อาจเป็นข้อเสียในกรณีนี้ เมื่อ rsync อ่านไฟล์บนรีโมตโฮสต์ต้องทำการถ่ายโอนโดย davfs2 ไปยังแคชโลคัลก่อน (หากยังไม่ได้มี) สิ่งนี้สามารถทำให้กระบวนการจริงๆและไม่จำเป็นช้า เนื่องจาก rsync ทำงานเป็นโปรแกรมคัดลอกที่ซับซ้อนในกรณีของคุณจึงควรใช้ cp แทน cp มีตัวเลือก (-u) เพื่อคัดลอกเฉพาะไฟล์ที่ใหม่กว่าในระบบไฟล์ davfs2 (= smartdrive) และไม่จำเป็นต้องอ่านไฟล์ แต่อ่านเฉพาะข้อมูลเมตาไฟล์เช่น mtime
คำสั่งเช่น "ไดเร็กทอรี cp -pru / ถึง / backup dav /" อาจทำงานได้ มันไม่ได้ดาวน์โหลดไฟล์ (เช่น rsync อาจทำ แต่ฉันไม่แน่ใจ) (โปรดดูคู่มือของ cp และ rsync)
ตัวเลือก?
ดังนั้นตามที่ @Athon ได้แนะนำไว้คุณสามารถใช้cp -u
วิธีการคัดลอกไฟล์ได้ ตระหนักว่าวิธีการนี้ดูที่ขนาดของไฟล์เป็นเพียงปัจจัยเปรียบเทียบเท่านั้นดังนั้นจึงไม่น่าเชื่อถืออย่างสมบูรณ์
คุณไม่ควรใช้สิ่งใดที่ดูเฉพาะเวลาที่แก้ไขเมื่อทำการเปรียบเทียบไฟล์, cp -pru
. เวอร์เนอร์อธิบายว่าทำไมในหัวข้อนี้ :
ข้อความที่ตัดตอนมาจากปัญหากับเวลา mod
เมื่อคุณ unmount ระบบไฟล์ davfs2 และติดตั้งอีกครั้งในภายหลังเวลาไฟล์อาจมีการเปลี่ยนแปลงตามข้อมูลเวลาจากเซิร์ฟเวอร์ เครื่องมืออย่าง cp -pu และ rsync ไม่สามารถไว้วางใจเวลาเหล่านี้เพื่อพิจารณาว่าไฟล์ใดมีการเปลี่ยนแปลง
เมื่อพิจารณาถึงปัญหาต่าง ๆ ที่เกิดขึ้นจากการดัดแปลงครั้งวิธีที่ใช้ checksums ล้วนๆดูเหมือนจะดีกว่า:
$ rsync -avvz --omit-dir-times --checksum --human-readable --progress <local dir> <remote dir>
--max-size=250M --exclude '.*'
ฉันใช้ ฉันแน่ใจว่าcp
สามารถทำสิ่งนี้ได้ ... อาจจะโดยการวางท่อของการค้นหาลงใน cp? แต่ฉันยังไม่รู้จะทำยังไงcp -ru
ถ้าเราเกิดขึ้นกับการแก้ปัญหาผมจะพยายาม ขอบคุณ