Seguro que tenemos muchas cosas en la base de datos, pero nunca hacemos copias de seguridad, ahora veremos como es tan sencillo como poner un simple script en el cron para que se ejecute periódicamente.Este es un script que permite hacer una copia de seguridad de la base de datos elgida mediante la variable BD con el usuario que pongamos en la variable User que tiene la contraseña que hemos puesto en la variable Passw . La copia de seguridad de la base de datos se almacenará en el directorio que pongamos en la variable Path con el nombre de la base de datos seguido de -1 (nombre_BD-1.sql). Para mayor seguridad hace copias rotatorias, es decir, tenemos dos copias de seguridad (nombre_BD-1.sql y nombre_BD-2.sql); la segunda será más antigua que la primera. La diferencia de fechas entres las copias vendrá dada por la frecuencia con la que se ejecute el script. Lo ideal es meter en el contrab, una tarea que llame a este script con la regularidad que creamos conveniente (aconsejo una copia diaria, siempre que la base de datos no sea demasiado grande).
#!/bin/bash # Este scrip realiza una copia de seguridad de la BD seleccionada en la variable BD en el dir Path con # el usuario User y la passw Passw # Hacemos otra copia de respaldo para tener más olgura BD=sgiex Path=/root/seguridad_sgiex User=root Passw=#Poner la passw de mysql del usuario que habeis elegido if [ ! -d $Path ];then mkdir $Path fi if [ -e $Path/$BD-1.sql ] && [ -e $Path/$BD-2.sql ];then rm -f $Path/$BD-2.sql mv $Path/$BD-1.sql $Path/$BD-2.sql mysqldump -B $BD --opt --password=$Passw --user=$User > $Path/$BD-1.sql #echo "Existen los 2 $Path/$BD-1" elif [ -e $Path/$BD-1.sql ] && [ ! -e $Path/$BD-2.sql ];then mv $Path/$BD-1.sql $Path/$BD-2.sql mysqldump -B $BD --opt --password=$Passw --user=$User > $Path/$BD-1.sql #echo "Existe $BD1 y ejecuto mysqldump" else mysqldump -B $BD --opt --password=$Passw --user=$User > $Path/$BD-1.sql cp $Path/$BD-1.sql $Path/$BD-2.sql #echo "No existe ninguno y ejecuto mysqldump" fi
Para la recuperación de la base de datos ponemos la siguiente orden:
mysql --password=clave --user=usuario base_datos < archivo.sql
Donde: clave Es la contraseña del usuario que hizo la copia de seguridad. usuario Es el usuario que realizó la copia de seguridad. base_datos Es el nombre de la base de datos que vamos a restaurar. archivo.sql Es el nombre del archivo SQL que contiene las instrucciones para restaurar la base de datos.









Sin comentarios
Post al azar
Deje sus comentario: