Rsync ไม่ทำอะไรเลยถ้าไฟล์ไม่เปลี่ยนแปลง


1
#!/bin/sh

date=`date "+%Y-%m-%dT%H:%M:%S"`
rsync -aP --link-dest=/target/current '/source/folder' /target/back-$date
rm -f /target/Backups/current
ln -s back-$date /target/current

นี่เป็นสคริปต์เล็กน้อยที่ฉันได้รับจากอินเทอร์เน็ตและปรับเปลี่ยนเล็กน้อย สคริปต์นี้ทำงานใน crontab ของฉันทุก 5 นาที จุดของสคริปต์นี้คือการรับไฟล์ประวัติ / เวลาเครื่อง -his

ฉันได้รับรายชื่อสแน็ปช็อตในโฟลเดอร์สำรองทุกห้านาที (เช่นทุกครั้งที่สคริปต์ทำงาน)

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

ฉันรู้ว่ามันไม่ใช้พื้นที่ใด ๆ แต่มันทำให้โฟลเดอร์สำรองของฉันค่อนข้างเล็ก


คุณส่งเอาต์พุตของ rsync ไปยังไฟล์ข้อความอื่นและแจงว่า หากผลลัพธ์นั้นยาว ... ประมาณ 5 บรรทัด (สิ่งที่เอาต์พุตนั้นมาจาก rsync พื้นฐานที่ไม่มีการเปลี่ยนแปลง) จากนั้นลบปลายทางที่คุณเพิ่งสร้าง คำแนะนำของฉันคือการลดจำนวนครั้งที่คุณสำรองในระหว่างวัน rsync ไม่สามารถทดแทนไทม์แมชชีนได้ บางทีหนึ่งชั่วโมงก็พอแล้ว นอกจากนี้คุณสามารถใช้ diff คำสั่งเพื่อดูว่ามีอะไรที่เปลี่ยนแปลงไปหรือไม่ ยังมีตัวเลือกอื่นให้ใช้ rsync และ -n / --dry-run เพื่อดูว่าการซิงค์แบบเต็มจำเป็นต้องเกิดขึ้นหรือไม่
UtahJarhead
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.