Copia de datos

 
#!/usr/local/bin/bash
 
# Variables
COUNT=168                                               # numero de rotaciones
BASE=backup_data                                        # nombre base para las copias
WORK=/mnt/databackup                                    # directorio de trabajo
IP=192.168.0.1                                       # ip del servidor a copiar
 
LOGDIR=/var/log/backup
LOGNAME=data_backup.`date '+%d.%m.%Y_%H:%M'`.log
 
CMD_RSYNC=/usr/local/bin/rsync
 
# Directorios data
HTDOCS_DIR=/usr/local/apache/htdocs/
MYSQL_DIR=/var/db/mysql/
MAIL_DIR=/var/spool/mail/postfix/
HOMES_DIR=/home/
ROOT_DIR=/root/
SPOOL_DIR=/var/spool/postfix/virtual/
 
cd $WORK
 
i=$COUNT
rm -rf $BASE.$i
 
while [ $i -gt 0 ]; do
 
        mv $BASE.$(($i-1)) $BASE.$i 2> /dev/null
        mv $BASE.$(($i-1))-info $BASE.$i-info 2>/dev/null
 
        i=$(($i-1))
done
 
# Creamos estructura base
#     data
#       |htdocs
#       |mysql
#       |mail
#       |homes
#       |root
#       |spool
 
if [ -d $BASE.0 ]; then mkdir -p $BASE.0; fi
mkdir -p $BASE.0/htdocs $BASE.0/mysql $BASE.0/mail $BASE.0/homes $BASE.0/root $BASE.0/spool
 
echo "Rotated on `date '+%d.%m.%Y_%H:%M'`" > $BASE.0-info
 
# backup data
$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/mysql root@$IP:$MYSQL_DIR $WORK/$BASE.0/mysql/
echo -e "$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/mysql root@$IP:$MYSQL_DIR $WORK/$BASE.0/mysql/" >> $LOGDIR/$LOGNAME
 
$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/htdocs root@$IP:$HTDOCS_DIR $WORK/$BASE.0/htdocs/
echo -e "$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/htdocs root@$IP:$HTDOCS_DIR $WORK/$BASE.0/htdocs/" >> $LOGDIR/$LOGNAME
 
$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/mail root@$IP:$MAIL_DIR $WORK/$BASE.0/mail/
echo -e "$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/mail root@$IP:$MAIL_DIR $WORK/$BASE.0/mail/" >> $LOGDIR/$LOGNAME
 
$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/homes root@$IP:$HOMES_DIR $WORK/$BASE.0/homes/
echo -e "$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/homes root@$IP:$HOMES_DIR $WORK/$BASE.0/homes/" >> $LOGDIR/$LOGNAME
 
$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/root root@$IP:$ROOT_DIR $WORK/$BASE.0/root/
echo -e "$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/root root@$IP:$ROOT_DIR $WORK/$BASE.0/root/" >> $LOGDIR/$LOGNAME
 
$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/spool root@$IP:$SPOOL_DIR $WORK/$BASE.0/spool/
echo -e "$CMD_RSYNC -avz --delete -e ssh --link-dest=$WORK/$BASE.1/spool root@$IP:$SPOOL_DIR $WORK/$BASE.0/spool/" >> $LOGDIR/$LOGNAME
 
cat $LOGDIR/$LOGNAME | mail -s "$LOGNAME" r0sk10@gmail.com
 
# EOF