jueves, 27 de septiembre de 2012

Script backup SQL en bash

Como todo buen Administrador de Sistemas que se tercie, nuestro trabajo consiste en "trabajar lo menos posible". Esto es, conseguir que las tareas que tenemos que realizar se puedan hacer más automatizadas.

Una de dichas tareas que tenemos que realizar en nuestro trabajo la de hacer copias de respaldo de la base de datos. Nuestro servidor posee un MySQL y como es normal hay que realizarle copias de seguridad periódicas.

Para realizar esta tarea hemos creado un script en bash (nuestro servidor es un linux), para que se copie toda la base de datos y toda la información que esta contiene a un directorio destino.

Podéis descargar el script de aquí:

Ahora paso a describir como usar CRON para automatizar la tarea del script.

CRON es un administrador regular de procesos que actúa en segundo plano como demonio, es el equivalente en Unix a Tareas Programadas de windows.

Podemos configurar este demonio para que ejecute una tarea específica cada minuto, hora, día o mes.

En nuestro caso vamos a hacer que se ejecute el script todos los días a las 3:00 am

Esta es la sintaxis que debéis de poner en el fichero /etc/cron.d/backup_bd el cual tenéis que crear:

  • 0 3 * * * root  /root/acens/backup_mysql.sh
Con esto la copia se hará la copia de forma automática todos los días. Espero que os sea útil.
Saludos curiosos.





miércoles, 26 de septiembre de 2012

Exportar e importar bases de datos en MySQL

Algunas veces, nos es necesario el importar una base de datos que tengamos en un servidor para incorporarlo a otro.

Para ello podemos hacerlo desde la misma consola de MySQL.
Lo primero que tenemos que hacer es exportar la base de datos antigua a un archivo .sql. Como nuestro servidor es un Linux con un servidor MySQL en él, contamos con cierta herramientas para gestionar el servidor.

Una de estas herramientas es mysqldump; que se encarga de hacer exportaciones de la base de datos a archivos, pudiendo incluso enviarlos a un servidor remoto.

Veamos como hacerlo:

  1. Entramos en la consola del servidor con privilegios de root y escribimos el siguiente comando para importar la base de datos a un archivo sql.
    • #mysqldump -h ip_servidor -u usuario_bd -p basededatos>mibase.sql
Como veis podemos indicarle a que servidor va a ir. Si no se especifica la opción -h ip_servidor, lo alojará en el directorio en el que estemos actualmente (en nuestro caso en /root).

Ahora tendremos que importarlo desde el servidor que lo vaya a alojar:
  1. Nos conectamos al servidor:
    • #mysql -h ip_servidor -u usuario_bd -p
  2. Si no hemos creado la base de datos anteriormente lo hacemos ahora:
    • mysql>create database mi_base_nueva;
  3. Usamos la base de datos creada anteriormente:
    • mysql>use mi_base_nueva;
  4. Le damos la ubicación del archivo para que lo importe con el comando source:
    • source /root/mibase.sql
Con esto ya tendremos nuestra base de datos migrada al nuevo servidor. Aunque como todo el mundo sabe hay ciertas herramientas como phpmyadmin que nos facilitarían la labor, aunque personalmente me gusta saber que es lo que estoy haciendo. Saludos curiosos.

Install Drupal 8 in CentOS

Drupal is an open source, flexible, highly scalable and secure Content Management System (CMS) which allows users to easily build and create...