rsync -e ssh –progress –delete -lprtvvzog ./ root@r0sk.mine.nu:/home
# mkdir -p /root/Backup/
# cd Backup/
# cp -r /etc ./
# cp -r /usr/local/etc ./
# pkg_info >> pkg_info.txt
# for i in `pkg_info | cut -f1 -d" "`; do pkg_info -L $i >> pkg_info-l.txt; done
# tar cfvz bck-`hostname -s`-`date "+%Y%m%d"`.tar.gz ./
# mkdir /home/backup
# cd /home/backup
# tar -jcvvf fullbackup-`hostname -s`-`date +%F`.tar.bz2 /etc /usr/local/etc /var/db/pkg
#!/usr/local/bin/bash
# Montando la partición de seguridad
/sbin/mount /backup
# Sincronizando bbdd y htdocs
/usr/local/bin/rsync --progress --delete -lprtvvzog /var/lib/mysql/ /backup/mysql/
/usr/local/bin/rsync --progress --delete -lprtvvzog /var/www/ /backup/htdocs/
# Copiando partes importantes del sistema
/usr/local/bin/rsync --progress --delete -lprtvvzog /etc/ /backup/etc/
/usr/local/bin/rsync --progress --delete -lprtvvzog /var/log/messages/ /backup/logs/
/usr/local/bin/rsync --progress --delete -lprtvvzog /home/ /backup/home/
# Desmontando la partición de seguridad
/sbin/umount /backup
#!/bin/bash
# ------------------------------------------------------------
# Variables Generales
# ------------------------------------------------------------
COUNT=168 # numero de rotaciones
BASE=backup # nombre base para las copias
WORK=/media/backup2/muro/ # directorio de trabajo
IP=192.168.0.1 # ip del servidor a copiar
LOGDIR=/media/backup2/log/
LOGNAME=backup_muro.`date '+%d.%m.%Y_%H:%M'`.log
EMAIL_ADMIN=logs@gmail.com
CMD_RSYNC=/usr/bin/rsync
# ------------------------------------------------------------
# Directorios
# ------------------------------------------------------------
SRCDIR=( /etc/ /bin/ )
DSTDIR=( /sys/etc/ /sys/bin/ )
# ---------------------------------------------------------
# Verificamos que los arrays tienen los mismos elementos
# ---------------------------------------------------------
SRCNUM=${#SRCDIR[@]}
DSTNUM=${#DSTDIR[@]}
if [ $SRCNUM -ne $DSTNUM ]; then
echo "Los arrays son desiguales"
exit
fi
# ------------------------------------------------------------
# Movemos $base.0 a $base.1 para dej last backup en 0
# Restamos uno alum de elementos del array (empieza en 0)
# Y empezamos la copia de seguridad SOLO si la IP responde
# al ping que enviamos
# ------------------------------------------------------------
if ping -c 1 $IP >/dev/null 2>&1
then
cd $WORK
k=$COUNT
rm -rf $BASE.$k
while [ $k -gt 0 ]; do
mv $BASE.$(($k-1)) $BASE.$k 2> /dev/null
mv $BASE.$(($k-1))-info $BASE.$k-info 2>/dev/null
k=$(($k-1))
done
for i in `seq 0 $(($SRCNUM-1))`; do
# Creamos los directorios correspondientes
echo "mkdir -p $BASE.0${DSTDIR[$i]}"
# Sincronizamos
echo "$CMD_RSYNC -lprtvvzog -e ssh \
--link-dest=$WORK$BASE.1${DSTDIR[$i]} \
root@$IP:${SRCDIR[$i]} \
$WORK$BASE.0${DSTDIR[$i]}"
done
# Reportando la informacion
echo "Rotated on `date '+%d.%m.%Y_%H:%M'`" > $BASE.0-info
cat $LOGDIR/$LOGNAME | mail -s "$LOGNAME" $EMAIL_ADMIN
else
echo "$IP no responde"
exit
fi
# EOF
#!/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