Crear backup de base de datos MySQL a través de ftp con un script...
La idea de este articulo, surge de la última de entrevista laboral a la cual asistí.
Vamos a dividir este proceso en tres procesos:
Primero el script comprimira las bases de datos.
Segundo realizaremos un backup de las bases de datos.
Tercero ese backup lo enviaremos vía ftp
Recuerda que antes de ejecutar el script, debes completar los datos siguientes:
- bk_host=Host ftp o IP (nombre de dominio del servidor ftp destino o su IP)
- bk_ftp_user=Usuario ftp (este usuario debe de tener permisos de administrador)
- bk_ftp_pass=Password ftp ( para que haya una comunicacion p2p
- bk_ftp_port=Puerto ftp, normalmente 21
- bk_ftp_path=Carpeta donde crear el bak, por ejemplo /backup
- log=Archivo log, normalmente – ~/tmp/bk.log
nano bak-db.sh
Te dejó el script por aquí (recuerda que debes agregar la información de arriba.
#!/bin/bash
bk_host=
bk_ftp_user=
bk_ftp_pass=
bk_ftp_port=21
bk_ftp_path=/backup
log=~/tmp/bk.log
DATE=$(date)
# Mysql Connect
# We wait .my.cnf for connection this do it compatible whit any system easy
# More secure and not need your password here
if [ ! -d ~/tmp ];then
mkdir ~/tmp
fi
cd ~/tmp
databases=$(echo "show databases;" | mysql |grep -v performance_schema |grep -v information_schema |grep -v Database)
for bd in $databases
do
DATE=$(date)
echo "Generando backup $bd -- $DATE" >> $log
mysqldump $bd --ignore-table=$bd.wp_wfHoover --ignore-table=$bd.wp_wfNet404s --ignore-table=$bd.wp_wfVulnScanners > $bd.sql || rm -f $bd.sql
if [ -e $bd.sql ];then
echo "Comprimiendo $bd" >> $log
gzip $bd.sql
echo "Enviando por FTP $bd" >> $log
/usr/bin/lftp -c "open -u $bk_ftp_user,$bk_ftp_pass ftp://$bk_host -p $bk_ftp_port; put -O $bk_ftp_path $bd.sql.gz " >> log
rm -f $bd.sql.gz
else
echo "BD $bd imposible realizar bak -- $DATE " >> ~/MYSQLDUMP-ERROR.log
echo "Error con el bak $bd" >> $log
fi
done
exit 0
Para efectos de creacion lo hice usando notepad++ y queda así:
Guarda y cierra el editor.
Para ejecutarlo:
bash bak-db.sh
Espero les sea de utilidad no olviden comentar.
Comentarios