# Patrick Lauer <patrick@gentoo.org> (09 Apr 2014) # Dead upstream, has known dataloss bugs. # Please use something more sane: rsnapshot, backuppc, obnam, ...
![]() |
btrfs is kinda experimental. |
![]() |
don’t blindly trust ‘some guy from mlug’ with backup advice. |
# Patrick Lauer <patrick@gentoo.org> (09 Apr 2014) # Dead upstream, has known dataloss bugs. # Please use something more sane: rsnapshot, backuppc, obnam, ...
![]() |
Google btrfs + ‘rampant layering violation’ |
btrfs sub create /home mount -t btrfs -o subvol=home $DEV
btrfs sub snap -r /home /backup/home
![]() |
snapshots only work on subvolumes |
ssh $SERVER btrfs send -p $PARENT $SRC | btrfs receive $DST
![]() |
snapshots must be read-only |
$PREFIX/backup/$UUID/path/to/subvol/_/$TIMESTAMP
mkfs.btrfs /dev/sdb mount /dev/sdb /newroot btrfs sub create /newroot/{data,backup} btrfs sub list # find /newroot/data id btrfs sub set-default $ID /newroot
btrfs-convert /dev/sda1
/dev/vda / btrfs subvol=data /dev/vda /var/lib/btrfs btrfs subvolid=0
/usr/bin/python3 mason.py snapshot
btrfs sub list -pcgouqR /
$FSROOT/backup/$UUID/$path/_/$TIMESTAMP
![]() |
snapshots aren’t recursive. use this to help backup policy. |
/usr/bin/python3 mason.py pull $UUID $SERVER
backup ALL=(ALL) NOPASSWD: /home/backup/mason.py
command="/usr/bin/sudo /home/backup/mason.py $SSH_ORIGINAL_COMMAND" ssh-rsa AAAAAAAA== danny@nerdcruft.net
![]() |
the above isn’t optimal for security, but it is convenient… |
mason.py snapshot
mason.py pull e65c83cc-47e8-4937-a432-a36d8ac0b8b9 ssh://chronos