# HG changeset patch # User Pascal Bellard # Date 1350230617 -7200 # Node ID 09fb684d4984e1a5c058ea17557d3432d0da7635 # Parent 9000cde8e23afc76c9ca59a22172f1cd21e3f52c btrfs-progs: add btrfs-snapshot diff -r 9000cde8e23a -r 09fb684d4984 btrfs-progs/receipt --- a/btrfs-progs/receipt Sun Oct 14 12:11:18 2012 +0200 +++ b/btrfs-progs/receipt Sun Oct 14 18:03:37 2012 +0200 @@ -27,6 +27,7 @@ { mkdir -p $fs/usr cp -a $install/usr/bin $fs/usr + cp -a $stuff/btrfs-snapshot $fs/usr/bin # Split mkfs --> btrfs-mkfs rm $fs/usr/bin/mkfs.btrfs } diff -r 9000cde8e23a -r 09fb684d4984 btrfs-progs/stuff/btrfs-snapshot --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/btrfs-progs/stuff/btrfs-snapshot Sun Oct 14 18:03:37 2012 +0200 @@ -0,0 +1,21 @@ +#!/bin/sh + +# Keep last 30 daily snapshot with crontab +#0 0 * * * /usr/bin/btrfs-snapshot 30 + +btrfs_list() +{ + awk '/ btrfs / { if (fs[$1] == "") { fs[$1] = $2; print $2 }}' \ + < /proc/mounts +} + +which btrfs > /dev/null && for root in $(btrfs_list) ; do + dir=${root%/}/.snapshots + [ -d $dir ] || mkdir $dir + cd $dir + i=0 + for s in $(ls -r); do + [ $((i++)) -ge ${1:-10} ] && btrfs subvolume delete $s + done + btrfs subvolume snapshot -r / $(date +%Y%m%d%H%M%S) +done