Howto Sincronizar 2 servidores con ISPCP + Rsync
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