take a snapshot before upgrading
[fbsd-stable-mgmt.git] / selfBackup.sh
1 #!/bin/sh
2 ZROOT_BASE="zroot"
3 SSH="/usr/bin/ssh"
4 ZFS="/sbin/zfs "
5 REMOTE="matarje"
6 REMOTE_USER="david"
7 REMOTE_KEY="~/.ssh/zfs"
8 REMOTE_POOL="breiz/BCK/master/popeye"
9 # ICLUDE="-o canmount=off"
10 XCLUDE="-x mountpoint -x canmount"
11
12 # getting last snapshot id
13 # if one cannot trust the snap id one can use creation time
14
15 ${ZFS} list -H -t snap -r zroot/JAILS/master@up && zfs destroy -r zroot/JAILS/master@up 
16
17 for i in usr usr/home JAILS/master JAILS/master/php  JAILS/master/git JAILS/master/d14 JAILS/master/epee JAILS/master/synapse JAILS/master/mariadb  JAILS/master/next
18 do
19         
20 ZROOT="${ZROOT_BASE}/${i}"
21 ZLAST=`${ZFS} list -o name -Hp -t snap -d 1 ${ZROOT} | cut -d '@' -f 2 | sort | tail -1` 
22 REMOTE_ZLAST=`${SSH} -i ${REMOTE_KEY} ${REMOTE_USER}@${REMOTE} ${ZFS} list -o name -Hp -t snap  -d 1 ${REMOTE_POOL}/${i} | cut -d '@' -f 2 | sort | tail -1` 
23
24
25 echo "sending incremental backup from " "${REMOTE_ZLAST} to ${ZLAST}" -- /${ZROOT}
26 #
27 ${ZFS} send -L -e -c -i ${ZROOT}@${REMOTE_ZLAST} ${ZROOT}@${ZLAST} | ${SSH} -i  ${REMOTE_KEY} ${REMOTE_USER}@${REMOTE} ${ZFS} recv -Fdu ${ICLUDE} ${XCLUDE} ${REMOTE_POOL}
28 done