djbuly
14/10/2008, 18:34
Muchas gracias por la info
#!/bin/bash # Nos situamos en el directorio adecuado cd /root/scripts/backup_duplicity # Incluímos fichero de variables source ./variables.sh # Borramos fichero de mensajes rm -f ${FICHERO_MENSAJES} ###################################### FUNCIONES ############################################### mensaje(){ DATE=`date +%Y-%m-%d\ %T` echo $DATE $1 >> ${FICHERO_MENSAJES} return 0 } log(){ DATE=`date +%Y-%m-%d\ %T` echo $DATE $1 >> ${FICHERO_LOG} return 0 } dupli_home(){ duplicity --full-if-older-than ${TIEMPO_BACKUP_TOTAL} /home/${CUENTA} ftp://${USUARIO_FTP}@${SERVIDOR_FTP}${DIR_BACKUP_HOME}/${CUENTA} >> ${FICHERO_MENSAJES} } dupli_borra_home(){ duplicity remove-older-than ${TIEMPO_GUARDA_BACKUP} ftp://${USUARIO_FTP}@${SERVIDOR_FTP}${DIR_BACKUP_HOME}/${CUENTA} >> ${FICHERO_MENSAJES} } ############################################ COMIENZO ###############################################33 log "Comienzo de Backup Duplicity - " echo "====================================================================" >> ${FICHERO_MENSAJES} mensaje "Comienzo de Backup Duplicity de ${MAQUINA}" echo "====================================================================" >> ${FICHERO_MENSAJES} mensaje "" ############################ BACKUP DE MYSQL ############################################## log "Lectura de bases de datos de MySQL" BASES="`mysql -B -N -e "show databases"| sed 's/ /%/g'`" log "Crea directorio temporal ${DIR_TEMP_MYSQL}" mkdir ${DIR_TEMP_MYSQL} for BASE in $BASES do log "Copia de BD ${BASE} a ${DIR_TEMP_MYSQL}" BASE="`echo ${BASE} | sed 's/%/ /g'`" mysqldump --quote-names --opt ${BASE} > ${DIR_TEMP_MYSQL}/${BASE}.sql done log "Backup remoto de MySQL" echo "====================================================================" >> ${FICHERO_MENSAJES} mensaje "Backup remoto de MySQL" echo "====================================================================" >> ${FICHERO_MENSAJES} duplicity --full-if-older-than ${TIEMPO_BACKUP_TOTAL} ${DIR_TEMP_MYSQL} ftp://${USUARIO_FTP}@${SERVIDOR_FTP}${DIR_BACKUP_MYSQL} >> ${FICHERO_MENSAJES} log "Borrado de backup antiguos de MySQL" echo "====================================================================" >> ${FICHERO_MENSAJES} mensaje "Borrado de backup antiguos de MySQL" echo "====================================================================" >> ${FICHERO_MENSAJES} duplicity remove-older-than ${TIEMPO_GUARDA_BACKUP} ftp://${USUARIO_FTP}@${SERVIDOR_FTP}${DIR_BACKUP_MYSQL} >> ${FICHERO_MENSAJES} log "Borra directorio temporal ${DIR_ENTRADA_MYSQL}" rm -rfd ${DIR_TEMP_MYSQL} ############################ BACKUP DE CUENTAS DE HOME ############################################## log "Lectura de cuentas de home" CUENTAS=`ls -A1 /var/cpanel/users` for CUENTA in $CUENTAS do log "Backup remoto de cuenta ${CUENTA}" echo "====================================================================" >> ${FICHERO_MENSAJES} mensaje "Backup remoto de cuenta ${CUENTA}" echo "====================================================================" >> ${FICHERO_MENSAJES} dupli_home log "Borrado de backup antiguos de cuenta ${CUENTA}" echo "====================================================================" >> ${FICHERO_MENSAJES} mensaje "Borrado de backup antiguos de cuenta ${CUENTA}" echo "====================================================================" >> ${FICHERO_MENSAJES} dupli_borra_home done ##################################### FIN ###################################################### unset ${PASSPHRASE} log "Fin de backup_duplicity" echo "====================================================================" >> ${FICHERO_MENSAJES} mensaje "Fin de backup_duplicity" echo "====================================================================" >> ${FICHERO_MENSAJES} cat ${FICHERO_MENSAJES} | mail -s "Backup Duplicity ${MAQUINA}" ${EMAIL}
#!/bin/bash export FTP_PASSWORD="password_ftp_OVH" export PASSPHRASE="password_encriptación" MAQUINA="mi_maquina" EMAIL="mi_email" USUARIO_FTP="usuario_ftp_OVH" SERVIDOR_FTP="ftpbackx.ovh.net" DIR_TEMP_MYSQL="/tmp/backup_mysql" DIR_BACKUP_MYSQL="/duplicity/mysql" DIR_BACKUP_HOME="/duplicity/home" FICHERO_LOG="/var/log/backup_duplicity.log" FICHERO_MENSAJES="mensajes" TIEMPO_GUARDA_BACKUP="3M" TIEMPO_BACKUP_TOTAL="1M"