Field Notes

Cheap daily snapshots with rsync and hard links

--link-dest makes every snapshot look like a full copy while unchanged files cost only a directory entry.

rsync -a --delete --link-dest=/snap/latest /data/ /snap/$(date +%F)/
ln -sfn /snap/$(date +%F) /snap/latest

Things that bite

Pruning

Deleting an old snapshot is just rm -rf. Data is freed only when the last link goes, so keep a few weekly ones and the space cost stays small.