Script for automatic backups XEN VM's on FTP
#!/bin/bash
DATE=`date +%d_%m_%Y`
XSNAME=`echo $HOSTNAME`
HOST='YOUR FTP SERVER'
PORT='FTP SERVER PORT'
USER='FTP USER'
PWD='FTP PASSWORD'
FTP_SUCCESS_MSG="Connect"
FTPLOG=/tmp/ftplogfile
BACKUPPATH=/backups
# check ftp
echo ''> /tmp/ftplogfile
telnet <<! > $FTPLOG
open $HOST $PORT
quit
!
if fgrep "$FTP_SUCCESS_MSG" $FTPLOG ;then
echo "ftp OK"
mkdir -p $BACKUPPATH
rm -rf $BACKUPPATH/*
vmlist=$(xe vm-list tags:contains=daily is-control-domain=false is-a-snapshot=false | grep uuid | cut -d":" -f2)
echo "$vmlist"
for vm in $vmlist
do
vmname=$(xe vm-list uuid=$vm | grep name-label | awk -F: '{print $2}' | tr -d " ")
echo $DATE - "Start making snaphot of - " $vmname >> /var/log/backups.log
uuidsn=$(xe vm-snapshot uuid=$vm new-name-label=snapshotname)
xe template-param-set is-a-template=false ha-always-run=false uuid=$uuidsn
xe vm-export vm=$uuidsn filename=$BACKUPPATH/$vmname-$DATE.xva
xe vm-uninstall uuid=$uuidsn force=true
filename=$vmname-$DATE.xva
echo $filename
ftp -nv <<! >> /var/log/backups.log
open $HOST $PORT
user $USER $PWD
cd backups
put $BACKUPPATH/$filename $filename
bye
!
rm -rf $BACKUPPATH/$filename
done
else
echo $DATE -- "Cant connect to FTP">>/var/log/backups.log
exit 0
fi
exit 0
DATE=`date +%d_%m_%Y`
XSNAME=`echo $HOSTNAME`
HOST='YOUR FTP SERVER'
PORT='FTP SERVER PORT'
USER='FTP USER'
PWD='FTP PASSWORD'
FTP_SUCCESS_MSG="Connect"
FTPLOG=/tmp/ftplogfile
BACKUPPATH=/backups
# check ftp
echo ''> /tmp/ftplogfile
telnet <<! > $FTPLOG
open $HOST $PORT
quit
!
if fgrep "$FTP_SUCCESS_MSG" $FTPLOG ;then
echo "ftp OK"
mkdir -p $BACKUPPATH
rm -rf $BACKUPPATH/*
vmlist=$(xe vm-list tags:contains=daily is-control-domain=false is-a-snapshot=false | grep uuid | cut -d":" -f2)
echo "$vmlist"
for vm in $vmlist
do
vmname=$(xe vm-list uuid=$vm | grep name-label | awk -F: '{print $2}' | tr -d " ")
echo $DATE - "Start making snaphot of - " $vmname >> /var/log/backups.log
uuidsn=$(xe vm-snapshot uuid=$vm new-name-label=snapshotname)
xe template-param-set is-a-template=false ha-always-run=false uuid=$uuidsn
xe vm-export vm=$uuidsn filename=$BACKUPPATH/$vmname-$DATE.xva
xe vm-uninstall uuid=$uuidsn force=true
filename=$vmname-$DATE.xva
echo $filename
ftp -nv <<! >> /var/log/backups.log
open $HOST $PORT
user $USER $PWD
cd backups
put $BACKUPPATH/$filename $filename
bye
!
rm -rf $BACKUPPATH/$filename
done
else
echo $DATE -- "Cant connect to FTP">>/var/log/backups.log
exit 0
fi
exit 0
1. Change tags:contains on tag that you set in XEN VM property.
2. Put script in file and set cron
Комментарии
Отправить комментарий