My goal is to have a certain directory to be available as tmpfs.
There will be some modifications during server uptime in this dir and those modifications must be synced to non-tmpfs persistent dir on HDD over rsync.
After server boot the latest version from non-tmpfs persistent dir must be moved to tmpfs and rsync syncing to be started.
I'm afraid that rsync will erase non-tmpfs backup if tmpfs dir will be empty..
I'm doing it in this way right now:
- create tmpfs partition in /etc/fstab
cat /etc/rc.local (pseudocode)
delete "tmpfs rsync" cronjob from /var/spool/cron/crontabs if there is any
cp -r /path/to/non-tmpfs-backup /path/to/tmpfs/dir
append /var/spool/cron/crontabs with "tmpfs rsync" cronjob
What do you think?
Answer
Create some sort of seed file deep in your non-tmpfs directory and only rsync back to non-tmpfs if it exists (meaning the "boot" copy worked), so something like:
BOOT
mount /path/tmpfs
rsync -aq --delete /path/non-tmpfs/ /path/tmpfs/
CRON
if [ -f /path/tmpfs/some/deep/location/filesgood.txt ]; then
rsync -aq --delete /path/tmpfs/ /path/non-tmpfs/
fi
It's not perfect but, if you enhance that (by looking for 5 "cookie" files during cron if you want to in different directories, e.g.), it should be pretty safe.
No comments:
Post a Comment