Script – Crear backup de bases de datos por FTP

ScriptCrear backup de bases de datos por FTP.

Desde sololinux ya hemos tratado en sucesivas ocasiones, el como realizar un «Backup» en Linux.

Hoy es diferente…

Vamos a crear un script, con el cual primero comprimiremos las bases de datos y posteriormente realizaremos un backup de las bases de datos alojadas en nuestro servidor, ademas lo enviaremos vía FTP.

Recuerda que antes de ejecutar el script, debes completar los datos siguientes:

  1. bk_host=Host ftp o IP
  2. bk_ftp_user=Usuario ftp
  3. bk_ftp_pass=Password ftp
  4. bk_ftp_port=Puerto ftp, normalmente 21
  5. bk_ftp_path=Carpeta donde crear el bak, por ejemplo /backup
  6. log=Archivo log, normalmente – ~/tmp/bk.log

Script - Crear backup de bases de datos por FTP 1

 

Crear backup y enviarlo por FTP

Creamos el archivo.

nano bak-db.sh

Copia y pega el script en el archivo .sh.
#!/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

Guarda y cierra el editor.

Lo ejecutas con:

bash bak-db.sh

o bien creas una tarea cron tal como se indica en este anterior articulo.

 

Agregar comentario