Bash / Rsync: ซิงโครไนซ์ทางเดียวและปล่อยให้ไฟล์อยู่คนเดียวเมื่อมีการเปลี่ยนแปลงข้อมูลเมตาเท่านั้น


2

ฉันมีบางโปรแกรมที่อนุญาตให้ส่งออกไปยังรูปแบบที่แตกต่างกัน (เช่น html) แต่มีหลายโปรแกรมที่แบ่งปันปัญหา: การส่งออกมักจะทำ "ทั้งหมดเข้าด้วยกัน" เสมอเช่นสิ่งต่าง ๆ เช่นรูปภาพหรือไฟล์แนบจะถูกสร้างขึ้นใหม่ในโฟลเดอร์ส่งออก หากพวกเขาไม่ได้เปลี่ยนตั้งแต่การส่งออกครั้งล่าสุด นอกจากนี้โดยทั่วไปแล้วพวกเขาจะไม่ดูแลการลบไฟล์ที่เลิกใช้แล้วหรืออาจล้มเหลวเมื่อไดเรกทอรีมีไฟล์อยู่แล้ว ฉันเคยเห็นปัญหาที่คล้ายกันกับฟังก์ชันการส่งออกของโปรแกรมที่แตกต่างกันในปัจจุบันกรณีใช้ของฉันคือ ZIM Desktop Wiki

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

มีวิธีที่จะทำให้ rsync ทำการตรวจสอบโดยเนื้อหาไฟล์จริงและปล่อยให้เมตาดาต้าเพียงอย่างเดียวสำหรับไฟล์ที่เหมือนกันหรือบางโซลูชันที่มีอยู่นอกเหนือจาก rsync?

คำตอบ:


1

จากหน้า rsync:

-c, --checksum: ข้ามไปตาม checksum ไม่ใช่ mod-time & size


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