From 4ea2b0f9c7454978c2a186737b8a45b6b24ab796 Mon Sep 17 00:00:00 2001 From: Simon Cornet Date: Sun, 7 Apr 2019 18:48:30 +0200 Subject: [PATCH] [FreeBSD] Added VM backup script --- FreeBSD/vm-backup.csh | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 FreeBSD/vm-backup.csh diff --git a/FreeBSD/vm-backup.csh b/FreeBSD/vm-backup.csh new file mode 100644 index 0000000..e957dff --- /dev/null +++ b/FreeBSD/vm-backup.csh @@ -0,0 +1,54 @@ +#!/bin/csh + +## config section +set vm_dataset = "zroot/vms" +set backup_dataset = "tank/backup/bhyve" +set backup_date = `date "+%Y-%m-%d"` + +# Snapshot all VMs +echo "" +echo "################# SNAPSHOT VM #################" +foreach vm (`ls /usr/vms | \ + grep -v .config | \ + grep -v .iso | \ + grep -v .templates`) + + ## stopping vm + vm stop $vm + + ## give vm time to shut down properly + sleep 5 + + ## snapshot vm + echo "Snapshot VM: $vm" + zfs snapshot $vm_dataset/$vm@$backup_date + echo "" + + ## start VM + vm start $vm + echo "" + +end + +# Backup all VM snapshots +echo "" +echo "################## BACKUP VM ##################" +foreach vm (`ls /usr/vms | \ + grep -v .config | \ + grep -v .iso | \ + grep -v .templates`) + + ## Send snapshot to backup destination + echo "Backup VM: $vm" + zfs send $vm_dataset/$vm@$backup_date | pv | zfs recv -F $backup_dataset/$vm + echo "" + + ## Delete snapshot + zfs destroy $vm_dataset/$vm@$backup_date + +end + +# report done +echo "" +echo "############### ALL DONE THANKS ###############" +echo ""