selfBackup.sh 1.1 KB

12345678910111213141516171819202122232425262728
  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. # getting last snapshot id
  12. # if one cannot trust the snap id one can use creation time
  13. ${ZFS} list -H -t snap -r zroot/JAILS/master@up && zfs destroy -r zroot/JAILS/master@up
  14. for i in usr usr/home JAILS/master JAILS/master/pg15 JAILS/master/php JAILS/master/git JAILS/master/d14 JAILS/master/epee JAILS/master/synapse JAILS/master/mariadb JAILS/master/next
  15. do
  16. ZROOT="${ZROOT_BASE}/${i}"
  17. ZLAST=`${ZFS} list -o name -Hp -t snap -d 1 ${ZROOT} | cut -d '@' -f 2 | sort | tail -1`
  18. 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`
  19. echo "sending incremental backup from " "${REMOTE_ZLAST} to ${ZLAST}" -- /${ZROOT}
  20. #
  21. ${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}
  22. done