Backup Citrix XenServer на сетевую шару


Делаем бэкап определённых виртуальных машин на сетевую шару

#!/bin/bash

#Задаём переменную с датой
DATE=`date +%d-%m-%Y`

#Задаём переменную с именем сервера
XSNAME=`echo $HOSTNAME`

#Путь до файла с uuid машинок
UUIDFILE=/home/xen-uuids-1d.txt

# Путь, куда будут складываться бэкапы
MOUNTPOINT=/home/syn

### Создаём локальную папку

mkdir -p ${MOUNTPOINT}

### Монтируем в неё удалённую папку по Windows File Sharing

mount -t cifs -o username=YourUserName,password=YourPassword //10.11.12.13/Path/To/ServerSharedFolder /home/syn

 

#Задаём переменную с путём, куда будем складывать. В имени пути будет имя сервера

BACKUPPATH=${MOUNTPOINT}/${XSNAME}

# создаём эти папки
mkdir -p ${BACKUPPATH}

 

# Удаляем из папки назначения резервные копии, старше 14-ти дней

find ${BACKUPPATH}* -mtime +14 -exec rm {} \;

# Сама выгрузка с компрессией

 

while read VMUUID
do
VMNAME=`xe vm-list uuid=$VMUUID | grep name-label | cut -d”:” -f2 | sed ‘s/^ *//g’`

SNAPUUID=`xe vm-snapshot uuid=$VMUUID new-name-label=”$VMNAME-$DATE”`

xe template-param-set is-a-template=false ha-always-run=false uuid=${SNAPUUID}

xe vm-export vm=${SNAPUUID} filename=”$BACKUPPATH/$VMNAME-$DATE.xva” –compress

xe vm-uninstall uuid=${SNAPUUID} force=true

done < ${UUIDFILE}

#отмонтируем папку

umount ${MOUNTPOINT}

 

В cron не забываем создать расписание

 

Восстанавливаем же командой:

xe vm-import filename=/tmp/cifsshare/<name of ova.xml> force=true sr-uuid=<uuid of desitination SR> preserve=true

Если надо положить рядом копию этой машинки, то параметр preserve выставляем в false