En este tutorial solo voy a explicar el proceso de envio FTP, si deseas saber como funsiona el resto del codigo te remito a mi otro post Automatizar copia de seguridad de la base de datos MySQL.
[code language=»bash»]
#!/bin/bash
# crea una copia de seguridad de una base de datos
###################### Variables DB #########################
DB_NAME=’my_database’
BACKUP_DIR=’/root/BACKUP_DB’
FECHA=`date –date=’now’ +%d-%m-%Y_%H-%M-%S`
################### Backup DB ########################
echo "* MySQLDUMP esta Realizando backup de la base de datos my_database"
DIR=$BACKUP_DIR"/"$FECHA"_my_database.sql"
# Archivo de configuración backup credenciales
CREDENTIALSFILE="/root/mysql_security_credentials.cnf"
# usamos mysqldump para hacer la copia de seguridad que se guarda en BACKUP_DIR
mysqldump –defaults-file=${CREDENTIALSFILE} –databases ${DB_NAME} > ${DIR}
echo "* MySQLDUMP termino el backup de la base de datos cahis_prod"
###################### Variables FTP #########################
HOST=’IP’
USER=’usuario’
PASS=’contraseña’
remote_dir=’/usuario/BACKUP_DB’
local_dir=’/root/BACKUP_DB’
################### Envio FTP ########################
echo "* Enviando backup de la base de datos al servidor FTP"
lftp -c "set ftp:list-options -a;
open ftp://$USER:$PASS@$HOST;
lcd $local_dir;
cd $remote_dir;
mirror –reverse \
–verbose \
–use-cache \
–only-newer \
–ignore-time \
–exclude a-dir-to-exclude/ \
–exclude-glob *.csv \
–exclude-glob *.log"
echo "* proceso terminado que tenga buen dia :)"
[/code]
mirror: para realizar una copia exacta del directorio.
podemos utilizar las siguientes opciones:
–verbose: Muestra lista de todos los archivos a medida que se transfieren.
–reverse: espejo inverso se sincroniza los archivos en base al cliente.
–only-newer: solo sincroniza archivos nuevos o modificados.
–ignore-time: Ignora el tiempo de creacion para decidir si dea sincronizar, solo tiene en cuenta el tamaño.
–use-cache: utiliza el cache para verificar mas rapido los archivos que fueron sincronizados y no tener que indexar de nuevo toda las carpeta.
–exclude-glob: Excluye archivos.
–exclude: Excluye directorios.