#MySQL – Automatizar respaldos de MySQL con crontab

mysql
Hoy les hablare de como automatizar los respaldos de las Base de datos que tengan en MySQL automáticamente.
automáticamente, en “X” tiempo o durante “Y” periodo.
Por si no lo recuerdas o no lo sabes el archivo crontab se ubica en el directorio /etc/ y dentro de el se coloca en cada linea una tarea especifica de la forma:

Siendo los campos de izquierda a derecha:
Minuto de 0 a 59 (01 02 03, etc)
Hora de 0 a 23 (es decir 01 = una de la mañana 13 = 13 horas o 1 de la tarde o 1 pm)
Día del Mes 01 a 12 Enero = 01 Febrero = 02 …
Mes Día de la semana Usando las 3 primeras letras del nombre del día 0 a 7 0 = Domingo 1 = Lunes por lo que sería: Sun -> Domingo Mon -> Lunes
Entonces entendido esto hagamos un par de ejemplos:
* 5 * * Sun = Cada minuto de 5:00 a.m. a 5:59 a.m. todos los domingos

15 8 * * *= Cada día a las 8 de la mañana con 15 minutos
15 20 * * *= Cada día a las 8 de la noche (veinte horas) con 15 minutos.

Entonces tomando esto en cuenta el enunciado final para poder automatizar el respaldo de la base de datos sería:

1 23 * * * = A todos los días a las 23 horas con un minuto.
Ejecuta como usuario root

mysqldump -u root -pcat /[directoriodearchivo]/.mysqlpasswd mysqldump comando para extraer la base de datos completa.
-u root -pcat /[directoriodearchivo]/.mysqlpasswd Indica usuario de mysql (en este caso root) y también indica el password, recordemos que en ese momento no vamos a estar en la oficina y por esa razón creamos un archivo oculto (por aquello de la seguridad) al cual accederemos mediante la llamada del comando cat

[base a respaldar] > /[directorio destino]/[archivo]_date | cut -d ‘ ‘ -f 2,4,7 | awk ‘ { print $1″_”$2″_”$3 }';.sql

En este caso con [base a respaldar] le indicamos el nombre de la base de datos a respaldar y con el signo > le indicamos que el contenido lo va a guardar con un nombre segun el resultado que el comando cut -d ‘ ‘ -f 2,4,7 | awk ‘ { print $1″_”$2″_”$3 }’;`.sql nos regrese junto con la extensión sql

 

(Visited 23 times, 1 visits today)
Sobre Armando Felipe Fuentes Denis 117 Artículos
Network Administrator and Telematic Services in Federation of Radio Amateurs of Cuba Residencia: Regla, La Habana Email: [email protected] Movil: +53 58319403

1 Comentario

  1. Importante post este, pero quiero hacer esto (Utlilizo yii framework): Tengo un sistema donde cree una función para hacer salvas de datos anexados y así poder actualizar la BD en un servidor, ya que tengo el sistema instalado en estaciones independiente y necesito coger los datos de esas estaciones y actualizar la del servidor, para ello cree un contralador con las funciones exportar e importar, donde en las estaciones de trabajo exporto y luego las importo en el servidor, esto lo hago manual, por las dificultades de conexión, ademas lo hago en windows, pero quiero hacerlo en linux, y no se como implementarlo con el mysqldump, esta son mis funciones en el contralador:
    public function actionExportar()
    {

    $filename = ‘salva.sql’;

    system(Yii::app()->params[‘mysqlDir’].”mysqldump –user=root –password=**** –no-create-db –no-create-info –extended-insert –insert-ignore BD tablas a salvar > $filename”);

    header(“Content-type: text/plain”);

    header(“Content-disposition: attachment; filename=Nobre_Fichero_exportar”.date(“Y_m_d_a”).”.sql”);

    readfile(‘salva.sql’);
    //Yii::app()->user->setFlash(‘success’,’Los datos fueron importados satisfactoriamente.’);
    Yii::app()->end();

    }

    public function actionImportar()
    {
    foreach($_FILES[‘files’][‘name’] as $key=>$filename){
    if(empty($filename))
    {
    echo “Seleccione salva.”;

    $this->render(‘salvas’);
    Yii::app()->end();
    }
    move_uploaded_file($_FILES[‘files’][‘tmp_name’][$key],$filename);

    $sqlFile = $filename;
    $restore = Yii::app()->params[‘mysqlDir’].”mysql –password=Ragla5648 –user=root dbfacturacion user->setFlash(‘success’,’Ocurrio un error al intentar cargar la salva.’);
    }else{
    Yii::app()->user->setFlash(‘success’,’Los datos fueron importados satisfactoriamente.’);
    //echo “Los datos fueron importados satisfactoriamente.”;
    unlink($filename);
    }
    $this->render(‘salvas’);
    }

    }
    Necesito implementar el mysqldump en linux

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*