แสดงเฉพาะไฟล์ที่เปลี่ยนแปลงขณะทำการซิงค์จาก ext4 เป็น NTFS


9

ฉันต้องการ rsync เพื่อพิมพ์ไฟล์ที่แก้ไขและลบ ตัวเลือก verbose (-v) ทำการพิมพ์ไฟล์ที่ถูกดัดแปลง แต่ยังรวมถึงรายการของไดเรคทอรีย่อยอาจเป็นเพราะไดเร็กตอรี่ที่ถูกสัมผัสถือว่าถูกแก้ไข เนื่องจากฉันซิงค์ไฟล์จำนวนมากจากไดเรกทอรีย่อยจำนวนมากจึงเป็นไปไม่ได้ที่จะเห็นการเปลี่ยนแปลงที่เกิดขึ้นจริง

ดังนั้นมีวิธีที่จะไม่พิมพ์ไดเรกทอรีใช้ rsync หรือไม่

ฉันไม่ได้มองหาgrep -v "*/$"คำตอบเพราะมันจะแยกไดเรกทอรีใหม่

คำสั่งที่ฉันใช้: rsync -avh --delete /media/data/src /media/data/bkp

และทุกครั้งที่มันพิมพ์รายการของไดเรกทอรีทั้งหมด:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

แก้ไข: ตกลงหลังจากการทดสอบอย่างเข้มข้น .. มันไม่ได้พิมพ์ไดเรกทอรีทั้งหมดเมื่อทำการซิงค์จากพาร์ติชัน ext4 ไปยัง ext4 และจาก NTFS ถึง NTFS มันจะทำได้ก็ต่อเมื่อทำการซิงค์จาก ext4 ไปเป็น NTFS .. และตัวเลือก-cหรือ--omit-dir-timesไม่เปลี่ยน

คำตอบ:


4

คุณสามารถลองใช้--omit-dir-timesสวิตช์เพื่อละเว้นเวลาไดเรกทอรี (ดูหน้า rsync man)

ฉันเองพบว่าการใช้-cสวิตช์เป็นวิธีที่ดีที่สุดเพื่อให้แน่ใจว่าเฉพาะไฟล์ที่มีการเปลี่ยนแปลงเนื้อหาปรากฏขึ้นในผลลัพธ์

โปรดทราบว่าการใช้-cจะทำให้ rsync ช้าลง


ขอบคุณสำหรับการตอบกลับ. ฉันพบว่ามันยากที่จะเชื่อว่ามันไม่ได้รับการสนับสนุนอย่างเป็นทางการอย่างน้อยก็โดยไม่สูญเสียความสามารถ (หรือตัวเลือก) .. ฉันจะต้องเชื่อมั่นในการซิงค์ทั้งหมด
qox

ขออภัยการแก้ไขของฉันเปลี่ยนคำถามหลังจากคำตอบของคุณ
qox

1

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

จากหน้า rsync:

โดยสรุป: เพื่อให้ไฟล์ปลายทาง (ทั้งเก่าและใหม่) ได้รับอนุญาตให้ใช้ --perms เพื่อให้ไฟล์ใหม่ได้รับอนุญาตเริ่มต้นปลายทาง (ในขณะที่ปล่อยไฟล์ที่มีอยู่ไม่เปลี่ยนแปลง) ตรวจสอบให้แน่ใจว่าตัวเลือก --perms ปิดและใช้ --chmod = ugo = rwX (ซึ่งทำให้มั่นใจได้ว่าบิตที่ไม่ถูกปิดบังทั้งหมดได้เปิดใช้งาน) หากคุณต้องการที่จะทำให้พฤติกรรมหลังนี้ง่ายขึ้นในการพิมพ์คุณสามารถกำหนดชื่อแทน popt ได้เช่นวางบรรทัดนี้ในไฟล์ ~ / .popt (ต่อไปนี้จะกำหนดตัวเลือก -Z และรวมถึง - ไม่มี - g เพื่อใช้กลุ่มเริ่มต้นของปลายทาง dir):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX

1

อย่าใช้ -a มันมี -p -o -g


คุณยังคงสามารถใช้งานได้-aหากคุณต้องการและเพิ่ม--no-o --no-p --no-gให้ละเว้นเจ้าของกลุ่มและการอนุญาต
Ian Dunn

0

ดูเหมือนว่าเป็นปัญหาสิทธิ์ ไม่แน่ใจว่าทำไม .. แต่ฉันแก้ไข / etc / fstab สำหรับพาร์ติชัน NTFS และตอนนี้ทำงานได้ตามที่คาดไว้นั่นคือไม่มีการพิมพ์ไดเรกทอรีที่ยังไม่ได้แก้ไข

รายการ fstab เก่า: ผู้ใช้ ntfs-3g, ค่าเริ่มต้น, exec, uid = 1000 0 0

รายการ fstab ใหม่: ผู้ใช้ ntfs-3g, ค่าเริ่มต้น, exec, uid = 1,000, gid = 1,000, dmask = 077, fmask = 137 0 0

ฉันคาดเดา (ใครจะรู้ .. ) dmask = 077 ทำกลอุบายเช่น 'drwx ---' แทน 'drwxrwx'


-1

ฉันใช้:

sudo rsync -auzhni --progress --omit-dir-times --no-o  src_dir/ dst_dir 

มันเป็นระยะแห้ง (ตัวเลือกn) ลบตัวเลือกนั้นเพื่อrsyncถ่ายโอนไฟล์จริง

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