diff --git a/FreeBSD/vm-backup-single b/FreeBSD/vm-backup-single new file mode 100644 index 0000000..3838074 --- /dev/null +++ b/FreeBSD/vm-backup-single @@ -0,0 +1,47 @@ +#!/bin/csh + +## config section +set vm = $1 +set vm_dataset = "zroot/vms" +set backup_dataset = "tank/backup/bhyve" +set backup_date = `date "+%Y-%m-%d_%H:%M"` + +# Snapshot all VMs +echo "" +echo "################# SNAPSHOT VM #################" + +## stopping vm +vm stop $vm + +## give vm time to shut down properly +sleep 15 + +## snapshot vm +echo "Snapshot VM: $vm" +zfs snapshot $vm_dataset/$vm@$backup_date +echo "" + +## start VM +vm start $vm +echo "" + +# Backup all VM snapshots +echo "" +echo "################## BACKUP VM ##################" + +## Create ZFS dataset +echo "Creating destination dataset for $vm" +zfs create $backup_dataset/$vm-$backup_date + +## Send snapshot to backup destination +echo "Backup VM: $vm" +zfs send $vm_dataset/$vm@$backup_date | zfs recv -F $backup_dataset/$vm-$backup_date +echo "" + +## Delete snapshot +zfs destroy $vm_dataset/$vm@$backup_date + +# report done +echo "" +echo "############### ALL DONE THANKS ###############" +echo "" \ No newline at end of file