One of the best Plan 9 features is the dump file
system, a nightly
snapshot of the filesystem. I use a similar scheme to backup my own
machines: Everyday, I run a script
dailydump
which
runs my
rdumpfs
wrapper around rsync to create a snapshot of my notebook SSD to the
hard disk. Files are compared to yesterday’s revision and hardlinked
in case they did not change. This makes backups pretty efficient: I
snapshot the whole filesystem and the dump increases only by around
250 to 400 MB daily. (That contains all system package updates.) I
keep the last month of daily dumps on the machine and later put them to
my home RAID for archival. I keep a
monthly copy on my notebook as well.
Since rdumpfs
supports backing up to and from remote machines, I also
use this to backup various machines on my home network that don’t have
enough local disk space for a dump.
The tool yday
is akin
to Plan 9’s yesterday
and can be used to compute old file names in the dump. For example,
to list all available versions of my .zshrc
that are older than 100 days:
% yday -a -n 100 ~/.zshrc
/dump/2013/0401/home/chris/.zshrc
/dump/2013/0314/home/chris/.zshrc
/dump/2013/0301/home/chris/.zshrc
/dump/2013/0214/home/chris/.zshrc
/dump/2013/0201/home/chris/.zshrc
/dump/2013/0114/home/chris/.zshrc
/dump/2013/0101/home/chris/.zshrc
/dump/2012/1231/home/chris/.zshrc
/dump/2012/1207/home/chris/.zshrc
This tool saved my files a few times already. :)
(Another benefit: When some package breaks, I can fiddle with $PATH
and $LD_LIBRARY_PATH
and almost transparently run old programs
against old libaries.)
NP: Molotow Soda—Everything