Instrucciones para hacer un backup de unas BD de MYSQL sin que la contraseña este accesible para todo el mundo, no es lo más seguro pero hasta que averiguo la forma de ponerla encriptada, voy teniendo una copia.

 

El procedimiento es crear un archivo dentro de la carpeta /root

 

root@syswoody:~# vi /root/.my.cnf

 

Dentro tenemos

 

[client]
user = root
password = password

 

Salimos y guardamos.

 

Ahora establecemos permisos para que solo root tenga acceso.

 

root@syswoody:~#chmod 600 .my.cnf

 

Ahora tenemos la validacion automatica, ya podemos hacer mysqldump y mysql sin necesidad de poner la password.

 

El script de copia es el siguiente.

 

#!/bin/bash
# ========================================
# Script para copias de seguridad en cinta
# ========================================

# — Fecha de la copia.

fecha=`/bin/date +%Y%m%d`
# Log
DirCopia=»/root/backup»
LOG=»$DirCopia/$fecha.log»
SinCopia=»mnt/copia/ALMACEN»
email=»[email protected]»

Dir=»/boot /var /home»

 

Para copia de MySQL
#* Usuario de MySQL *#
MyUser=»root»
#* PASSWORD del usuario de MySQL *#
MyPass=»PASSWORD»
#* Host de MySQL *#
MyHost=»127.0.0.1″
#* Binarios de MySQL *#
MYSQL=»$(which mysql)»
MYSQLDUMP=»$(which mysqldump)»

GZIP=»$(which gzip)»

 

 

rm -rf $DirCopia/*
if [  ! $? -eq  0 ]; then
echo «Error Borrado directorio de copia» >> $LOG
else
echo «Se ha realizado la limpieza de forma correcta» >> $LOG
fi

# EMPEZAMOS

echo «Buenas Noches : Empezamos la copia Dia: » $fecha >> $LOG
hora=`/sbin/clock`
echo » La hora es» $hora >> $LOG

echo » El almacen temporal de la copia es:» $DirCopia >> $LOG

echo » » >> $LOG

echo » Vaciamos el directorio de copias:» $DirCopia >> $LOG
se

echo «# ============================================================= #»
echo «# Comprimir datos con permisos y path en el directorio de copia #»
echo «# ============================================================= #»

echo » Exportamos la BD» # Para esto antes hemos debido de crear el archivo .my.cnf

# Obtener la lista de todas las BBDD
DBS=»$($MYSQL  -Bse ‘show databases’)»
# Comenzar volcado de la base de datos una a una
for db in $DBS
do
FILE=$DirCopia/mysql-$db.$fecha.gz
# Comprimir todas los ficheros con gzip.
$MYSQLDUMP -u $MyUser -h $MyHost $db | $GZIP -9 > $FILE
if [  ! $? -eq  0 ]; then
echo «Error Comprimiendo BD» $db >> $LOG
else
echo «Compresion» $db «Ok» >> $LOG
fi
echo «Empezamos los directorios a copiar son: » >> $LOG

echo «Compresion de:» $Dir >> $LOG
for i in $Dir;
do
echo «Acortamos el nombre.» >> $LOG
variable=`echo $i | sed «s/\///g»`

echo $variable >> $LOG

echo «Compresion origen:» $i «Destino» $DirCopia/$variable$fecha.tgz >> $LOG

tar czvf $DirCopia/$variable$fecha.tgz /$i
if [  ! $? -eq  0 ]; then
echo «Error Comprimiendo» $i >> $LOG
else
echo «Compresion» $i «Ok» >> $LOG
fi
done

# ===============
# Enviar por mail
# ===============

echo «Traspasamos el LOG para que se guarde en la copia.» >> $LOG
cat $LOG | mail -s «Copia del dia $fecha» $email
echo «Proceso de copia concluido»

Por admin

Deja una respuesta

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
100% Free SEO Tools - Tool Kits PRO