Sincronizar dos servidores

Howto Sincronizar 2 servidores con ISPCP + Rsync 

 

Primero darle la gracias a Kilburn, ya que me puso la puntilla que faltaba para la conexion.
Esto se puede adpatar facilmente como podeis ver.
Yo lo que he echo ha sido aplicar la copia como si fuera una exportacion.

Ya que se ha tratado varias veces el tema de tener un servidor espejo, copias remotas, etc… pienso que era bueno tener un post con el proceso echo.

Y ahora el howto:

1º.- Preparar servidor para conexion automatica:

www1: ssh-keygen — Generar keys para carga automatica.
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/sincroniza (Ej.) 
Enter passphrase (empty for no passphrase):[ENTER]
Enter same passphrase again:[ENTER]
Your identification has been saved in sincroniza
Your public key has been saved in sincroniza.pub

Ya tenemos los 2 archivos generados en el servidor ahora hay que pasarlos al que vamos a conectar para registrar las keys.
www1:scp /root/.ssh/sincroniza* root@ip_receptora:/root/.ssh
Ya que tenemos los archivos en el otro servidor habrá que generar la consiguiente autorizacion 
www2:/root/.ssh/cat sincroniza.pub > /root/.ssh/authorized_keys

Y listo ya podemos conectar si necesidad de poner el pass
ssh -i /root/.ssh/sincroniza root@ip

Ahora subimos este SCRIPT al servidor www1, generamos un cron que lo llame cada X tiempo y se sincronizaran ambos servidores.

########Script backup##########

#!/bin/sh

###############################################################################
###############################################################################
# Objetivos: Conseguir un servidor funcional clonado
###############################################################################
# Realiza un respaldo de configuraciones del sistema
#	-- Archivo passwd
# 	-- Archivo group
#	-- Archivo shadow
# Realiza un respaldo de programas principales
#	-- Courier
#	-- Postfix
#	-- Proftpd
#	-- Ispcp.conf
#	-- Usuario debian@localhost
# Realiza un respaldo de datos almacenados
# 	-- Paginas webs
#	-- Bases de Datos
#	-- Buzones de correo
#	-- Logs del sistema
#	-- Cron almecenados
#	-- Dns con sus zonas y resolucion en archivo named.conf
#	-- Motor del panel incluidas las keys
#	-- Configuracion completa de apache
#	-- Configuracion y carga PHP
#
# Para backup remoto se asumira que localhost es el origen de los datos
#
#
# Variables de rutas, ubicacion de las bases de datos, paginas
# y comandos necesarios para la ejecucion

# Nombre o direccion IP del host remoto, en blanco si el backup se hara en local

HOST_REMOTO= IP o DNS

# Nombre de usuario remoto, en blanco si el backup se ará en local

USUARIO_REMOTO= QUIEN HACE LA COPIA

# Puerto remoto a la escucha de ssh

PUERTO_REMOTO=22

# Distintas configuraciones a sincronizar
# Cada directoro se actualizará mediante una nueva conexion rsync

# Configuraciones del sistema

PASSWD=/etc/passwd
GROUP=/etc/group 
SHADOW=/etc/shadow


# Configuraciones Principales

COURIER="/etc/courier"
POSTFIX="/etc/postfix"
PROFTPD="/etc/proftpd/proftpd.conf"
CNF_ISPCP="/etc/ispcp/ispcp.conf"
CNF_MYSQL="/etc/mysql/debian.cnf"

# Configuracion y keys del panel

KEYS="/var/www/ispcp/engine/ispcp-db-keys.pl"
KEYS1="/var/www/ispcp/engine/messenger/ispcp-db-keys.pl"
KEYS2="/var/www/ispcp/gui/include/ispcp-db-keys.php"
PMA="/var/www/ispcp/gui/tools/pma/config.inc.php"

# Datos almacenados en el servidor

PAGINAS="/var/www/virtual"
MYSQL="/var/lib/mysql"
CORREO="/var/mail/virtual"
LOGS="/var/log"
CRON="/var/spool/cron"
BIND="/var/cache/bind"
NAMED="/etc/bind/named.conf"
ISPCP="/etc/ispcp"
APACHE="/etc/apache2"
PHP="/var/www/fcgi"

# Directorio donde se almacenaran los registros de log (en local)

DIR_LOG=/var/log/rbackup

# Nombre del archivo de log

ARCH_LOG=rbackup.log

# Nombre del archivo de debug, el archivo solo se conservará si
# Se lo indica en la variable CONSERVAR_DEBUG o si ocurrieran errores

ARCH_DEBUG=`date +rbackup-%d-%m-%Y-%H:%M.debug`

# Coservar el archivo de debug, cero por NO, cualquier otro valor por SI

CONSERVAR_DEBUG=1

# Directorios destino de los backups

RUTA_PASSWD=/etc/passwd
RUTA_GROUP=/etc/group
RUTA_SHADOW=/etc/shadow
RUTA_COURIER=/etc
RUTA_POSTFIX=/etc
RUTA_PROFTPD=/etc/proftpd/proftpd.conf
RUTA_CNF_ISPCP=/etc/ispcp/ispcp.conf
RUTA_KEYS=/var/www/ispcp/engine/ispcp-db-keys.pl
RUTA_KEYS1=/var/www/ispcp/engine/messenger/ispcp-db-keys.pl
RUTA_KEYS2=/var/www/ispcp/gui/include/ispcp-db-keys.php
RUTA_PMA=/var/www/ispcp/gui/tools/pma/config.inc.php
RUTA_PAGINAS=/var/www
RUTA_MYSQL=/var/lib
RUTA_CORREO=/var/mail
RUTA_LOGS=/var
RUTA_CRON=/var/spool
RUTA_BIND=/var/cache
RUTA_NAMED=/etc/bind/named.conf
RUTA_ISPCP=/etc
RUTA_APACHE=/etc
RUTA_PHP=/var/www
RUTA_DEBIAN=/etc/mysql/debian.cnf


################################################################################################################

# Carga de clave para logeo automatico del sistema

CLAVE_PRIVADA=/root/.ssh/ARCHIVO GENERADO

# Agrega un registro al archivo de log
# Si se especifica la opcion -p tambien lo muestra por pantalla

log(){
    echo `date "+%d %b %r"`" "$1 >> $ARCH_LOG
    test +$2 == '+-p' && echo `date "+%d %b %r"`" "$1
}

# Coloca ruta absoluta a los archivos de log

ARCH_LOG=${DIR_LOG}/$ARCH_LOG
ARCH_DEBUG=${DIR_LOG}/$ARCH_DEBUG

# Comprueba que existe el directorio de log y el archivo de log, lo crea si no existiera
# El script termina con error si no se pudiera lograr esto con exito

! test -d $DIR_LOG && mkdir --parent $DIR_LOG
! test -d $DIR_LOG && echo "Error fatal: El directorio de destino de los archivos de log y debug no existe y no puede crearse" && exit 1

! test -e $ARCH_LOG && echo "Creando archivo de log" && touch $ARCH_LOG
! test -w $ARCH_LOG && echo "Error fatal: El archivo de log $ARCH_LOG no existe y no puede crearse y/o modificarse" && exit 1

! test -e $ARCH_DEBUG && touch $ARCH_DEBUG
! test -w $ARCH_DEBUG && log "Error fatal: El archivo de debug $ARCH_DEBUG no pudo crearse y/o modificarse" -p && exit 1

log 'Iniciando backup'
logger -t $0 'Iniciando backup'
echo -- DEBUG FILE -- [  `date "+%d %b %r"`  ] >> $ARCH_DEBUG

# Da el formato adecuado al destino segun sea local o remoto

! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_PASSWD=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_PASSWD}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_GROUP=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_GROUP}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_SHADOW=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_SHADOW}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_COURIER=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_COURIER}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_POSTFIX=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_POSTFIX}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_PROFTPD=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_PROFTPD}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_CNF_ISPCP=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_CNF_ISPCP}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_KEYS=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_KEYS}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_KEYS1=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_KEYS1}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_KEYS2=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_KEYS2}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_PMA=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_PMA}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_PAGINAS=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_PAGINAS}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_MYSQL=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_MYSQL}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_CORREO=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_CORREO}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_LOGS=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_LOGS}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_CRON=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_CRON}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_BIND=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_BIND}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_NAMED=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_NAMED}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_ISPCP=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_ISPCP}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_APACHE=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_APACHE}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_PHP=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_PHP}
! test -z $USUARIO_REMOTO && ! test -z $HOST_REMOTO && RUTA_DEBIAN=${USUARIO_REMOTO}@${HOST_REMOTO}:${RUTA_DEBIAN}


ERROR=$?
if [ $ERROR -ne 0 ];
then
           log "ATENCION: La transferencia del archivo ha finalizado con código de salida $ERROR. Vea el archivo $ARCH_DEBUG para obtener información detallada del error."
           test +$CONSERVAR_DEBUG == '+0' && rm $ARCH_DEBUG
fi

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_PASSWD}\""
log "############################################################;

# Realiza el respaldo de los archivos de passwd
# Si ocurre algun error se loguea

for ARCHIVOS in $PASSWD
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_PASSWD}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_PASSWD} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_GROUP}\""
log "############################################################;

# Realiza el respaldo de los archivos de group
# Si ocurre algun error se loguea

for ARCHIVOS in $GROUP
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_GROUP}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_GROUP} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done


log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_SHADOW}\""
log "############################################################;

# Realiza el respaldo de los archivos de shadow
# Si ocurre algun error se loguea

for ARCHIVOS in $SHADOW
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_SHADOW}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_SHADOW} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_COURIER}\""
log "############################################################;

# Realiza el respaldo de los archivos de courier 
# Si ocurre algun error se loguea

for ARCHIVOS in $COURIER
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_COURIER}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_COURIER} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_POSTFIX}\""
log "############################################################;

# Realiza el respaldo de los archivos de postfix
# Si ocurre algun error se loguea

for ARCHIVOS in $POSTFIX
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_POSTFIX}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_POSTFIX} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_PROFTPD}\""
log "############################################################;

# Realiza el respaldo de los archivos de proftpd
# Si ocurre algun error se loguea

for ARCHIVOS in $PROFTPD
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_PROFTPD}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_PROFTPD} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_CNF_ISPCP}\""
log "############################################################;

# Realiza el respaldo de los archivos de ispcp.conf
# Si ocurre algun error se loguea

for ARCHIVOS in $CNF_ISPCP
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_CNF_ISPCP}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_CNF_ISPCP} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_KEYS}\""
log "############################################################;

# Realiza el respaldo de los archivos de keys
# Si ocurre algun error se loguea

for ARCHIVOS in $KEYS
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_KEYS}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_KEYS} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_KEYS1}\""
log "############################################################;

# Realiza el respaldo de los archivos de keys1   
# Si ocurre algun error se loguea

for ARCHIVOS in $KEYS1   
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_KEYS1}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_KEYS1} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_KEYS2}\""
log "############################################################;

# Realiza el respaldo de los archivos de keys2   
# Si ocurre algun error se loguea

for ARCHIVOS in $KEYS2   
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_KEYS2}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_KEYS2} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_PMA}\""
log "############################################################;

# Realiza el respaldo de los archivos de pma
# Si ocurre algun error se loguea

for ARCHIVOS in $PMA
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_PMA}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_PMA} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_PAGINAS}\""
log "############################################################;

# Realiza el respaldo de los archivos de paginas
# Si ocurre algun error se loguea

for ARCHIVOS in $PAGINAS
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_PAGINAS}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_PAGINAS} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done


log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_MYSQL}\""
log "############################################################;

# Realiza el respaldo de los archivos del servidor MYSQL
# Si ocurre algun error se loguea

for ARCHIVOS in $MYSQL
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_MYSQL}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_MYSQL} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done



log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_CORREO}\""
log "############################################################;

# Realiza el respaldo de los archivos de los buzones de correo
# Si ocurre algun error se loguea

for ARCHIVOS in $CORREO
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_CORREO}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_CORREO} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done


log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_LOGS}\""
log "############################################################;

# Realiza el respaldo de los archivos logs
# Si ocurre algun error se loguea

for ARCHIVOS in $LOGS
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_LOGS}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_LOGS} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done


log "############################################################;
log "Inicio del backup de archivos, destino: \"${RUTA_CRON}\""
log "############################################################;

# Realiza el respaldo de los archivos logs
# Si ocurre algun error se loguea

for ARCHIVOS in $CRON
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_CRON}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_CRON} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done


log "############################################################"
log "Inicio del backup de archivos, destino: \"${RUTA_BIND}\""
log "############################################################"

# Realiza el respaldo de los archivos servidor dns
# Si ocurre algun error se loguea

for ARCHIVOS in $BIND
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_BIND}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_BIND} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################"
log "Inicio del backup de archivos, destino: \"${RUTA_NAMED}\""
log "############################################################"

# Realiza el respaldo de los archivos servidor dns named.conf
# Si ocurre algun error se loguea

for ARCHIVOS in $NAMED
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_NAMED}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_NAMED} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done


log "############################################################"
log "Inicio del backup de archivos, destino: \"${RUTA_ISPCP}\""
log "############################################################"

# Realiza el respaldo de los archivos principales del panel
# Si ocurre algun error se loguea

for ARCHIVOS in $ISPCP
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_ISPCP}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_ISPCP} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done


log "############################################################"
log "Inicio del backup de archivos, destino: \"${RUTA_APACHE}\""
log "############################################################"

# Realiza el respaldo de los archivos servidor web
# Si ocurre algun error se loguea

for ARCHIVOS in $APACHE
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_APACHE}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_APACHE} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done


log "############################################################"
log "Inicio del backup de archivos, destino: \"${RUTA_PHP}\""
log "############################################################"

# Realiza el respaldo de los archivos configuracion php (fcgi)
# Si ocurre algun error se loguea

for ARCHIVOS in $PHP
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_PHP}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_PHP} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

log "############################################################"
log "Inicio del backup de archivos, destino: \"${RUTA_DEBIAN}\""
log "############################################################"

# Realiza el respaldo de los archivos configuracion mysql usuario debian
# Si ocurre algun error se loguea

for ARCHIVOS in $CNF_MYSQL
do
   log "Actualizando \"${ARCHIVOS}\" en \"${RUTA_DEBIAN}\""
   RS_OUTPUT=`rsync -e "ssh -p $PUERTO_REMOTO -i $CLAVE_PRIVADA" -avz --delete $ARCHIVOS ${RUTA_DEBIAN} 2>&1`
   test $? -ne 0 && ERROR=1 && log "ATENCION: $RS_OUTPUT" -p
   echo `date "+%d %b %r"`" -- MARK --" >> $ARCH_DEBUG
   echo ${ARCHIVOS}: $RS_OUTPUT >> $ARCH_DEBUG
done

if [ $ERROR -eq 0 ];
then
  if [ +$CONSERVAR_DEBUG == '+0' ];
  then
    rm $ARCH_DEBUG
  else
    log "El archivo de debug es \"${ARCH_DEBUG}\""
  fi
fi

log "Backup finalizado"
logger -t $0 'Backup finalizado'
exit 0

 

Deja una respuesta