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



1. Change tags:contains on tag that you set in XEN VM property.
2. Put script in file and set cron

Комментарии

Популярные сообщения из этого блога

Postfix mail server block .bat, .exe .com .vbs mime attachments – common virus spreading files

How to hide Postfix Headers