Bienvenidos

Todos estos pasos descriptos fueron probados en ambientes productivos

jueves, 4 de febrero de 2016

zfs snapshot remoto para backup de Sistema Operativo

La finalidad es backupear en forma remota a un equipo que montamos por nfs, un backup de sistema operativo, con zfs
#!/usr/bin/ksh -x
## Script de resguardo de Sistema Operativo Solaris
### Monto por NFS
mount 10.xx.33.114:/BACKUPS /mnt
MONTO=$?
UBICA=/mnt/`uname -n`
cd $UBICA
LOGerr="/export/home/backup/LOGS/backup_SO_Zonas_`date +%d_%m_%y.err`"
LOG="/export/home/backup/LOGS/backup_SO_Zonas_`date +%d_%m_%y`"
MAILTO="root tecnico.solaris@gmail.com  "
###Variables agregadas para zfs
RPOOL=rpool

#
### FIN DE ASIGNACION DE VARIABLES ESPECIFICAS
#
if [ "$MONTO" -eq 0 ]
then
        :       echo "# El FS por NFS fue montado OK"
else
        echo "error NO se pudo montar por NFS el ERROR fue $MONTO"
        echo "################################"
        echo "################################"
        exit 1
fi
backup_FS_to_NFS()     {
      echo

        if zpool status $RPOOL
        then
                echo backupZFS
                ### DATOS ZFS
                zpool list $RPOOL > $UBICA/zpool.list.$RPOOL.cfg
                zpool get all $RPOOL > $UBICA/zpool.getall.$RPOOL.cfg
                zfs get -r all $RPOOL > $UBICA/zfs.getall.$RPOOL.cfg
                zpool status $RPOOL > $UBICA/zpool.status.$RPOOL.cfg
                DISK=`zpool status $RPOOL | grep c.d.s. | awk '{ print $1 }'`
                for k in $DISK
                do
                k=`echo $k | sed "s/\/dev\/rdsk\///" `
                prtvtoc /dev/rdsk/$k > $UBICA/prtvtoc.$RPOOL.$k.lst
                done
                ifconfig -a > $UBICA/ifconfig-a.cfg
                zfs snapshot -r ${RPOOL}@archive
                zfs destroy ${RPOOL}/swap@archive
                zfs destroy ${RPOOL}/dump@archive
                date >> $UBICA/backup_LOG.log
                zfs send -Rv ${RPOOL}@archive  | cat > $UBICA/${RPOOL}.zfs
                zfs destroy -r ${RPOOL}@archive
        else
                ###echo ":::: Montando fsssnap"
                #fssnap -F ufs -o backing-store=/snaps/root.backup.dmp /
                echo ":::: Efectuando DUMP de / (`date +%d_%m-%T`)"
                ufsdump 0uf $UBICA/BARRA.DMP /
                echo ":::: BACKUP: FIN backup fs /  (`date +%d_%m-%T`)"
        fi
} 1>>$LOG 2>>$LOGerr
backup_NFS
################################
cp $LOG $UBICA
cp $LOG.err $UBICA
cp $EXPLORER/explorer*gz $UBICA
cd /
umount /mnt
echo $?

### Notificar Resultados via email
cat $LOGerr|mailx -s "Backup `uname -n`" $MAILTO

No hay comentarios:

Publicar un comentario