MySQL – Crear y restaurar copias de bases de datos MySQL

MySQL incorpora un comando llamando mysqldump que nos permite crear copias de seguridad y restaurarlas de bases de datos mysql. Para usarlo debemos abrir un terminal (en Linux) o línea de comandos (en Windows). En esta ocasión yo voy a hacerlo en Windows.

Para abrir la línea de comandos en Windows ya sabrás que es tan fácil como pulsar [Win]+R, escribir cmd, y pulsar Enter:

Windows_Command_Line

Ahora deberemos cambiar al directorio donde tenemos instalado MySQL, en mi caso teclearía:

A continuación teclearemos el comando necesario para crear el backup o para restaurarlo.

Crear backup de una base de datos MySQL

La sintaxis es la siguiente:

Es decir, para el usuario root, cuyo password es PasswordRoot, si queremos crear un backup de la base de datos dbJuegos en el directorio raíz de la unidad E:\, teclearemos:

Con ello se habrá creado en E:\ el fichero miBackup.sql

Backups de múltiples bases de datos

En este caso se incorpora el parámetro –databases justo antes del nombre de las bases de datos:

Si además queremos hacer una copia de todas las bases de datos, usamos el parámetro –all-databases:

Restaurar backup de una base de datos MySQL

Para restaurar bases de datos a partir de ficheros .sql, primero tenemos que cerciorarnos de que la base de datos YA EXISTE. En este post te explico cómo hacerlo. Cuando estemos seguros de que la base de datos existe, ejecutamos la siguiente sentencia:

En nuestro ejemplo:

Para el próximo post tengo preparadas 4 sentencias SQL sencillas, pero te hará falta restaurar la base de datos que adjuntaré, haciendo uso de todo lo anterior. Sólo espero que no pase un año entero hasta que me apetezca publicarlo 😉

Linux Bash (II) – Comandos Linux esenciales

Por fin he encontrado algo de tiempo y motivación para continuar con el blog. Y voy a continuar donde lo dejé, en los scripts de Linux Bash. En esta ocasión voy a presentarte algunos de los comandos de linux más útiles, que probablemente utilizarás tanto en un script como directamente en la línea de comandos, dada su importancia.

cat

Muestra el contenido de un fichero en pantalla. Su uso es bien sencillo:

less

También muestra el contenido de un fichero en pantalla, pero al contrario de cat, esta vez nos permite desplazarnos arriba y abajo con los cursores. Además, muestra un “prompt” como el de vim (:). Tras este prompt podemos escribir comandos como “/ cadena” para que nos busque cadena dentro del contenido. Para salir de less, simplemente introduciremos una q en el prompt.

head

Imprime por pantalla las primeras líneas de un archivo. Por defecto muestra las 10 primeras líneas, pero con el modificador -n podemos especificar cuántas queremos mostrar. Por ejemplo, la siguiente instrucción mostraría las primeras 15 líneas de archivo:

tail

Exactamente igual que head, pero muestra las últimas líneas del fichero. Así, esto mostraría las 15 últimas líneas de archivo:

echo

Para mostrar mensajes por pantalla. Probablemente sea el comando más utilizado en los scripts:

sleep

Detiene la ejecución del script durante el tiempo que le especifiquemos, en segundos. Por ejemplo, esto pausa la ejecución durante 2 segundos:


Y con lo anterior, doy por terminado este post. Más adelante hablaré de variables, condicionales, bucles y funciones. ¡Hasta la próxima!

Linux Bash (I) – Introducción

Un script en bash de linux vendría a ser el equivalente a un archivo de procesamiento por lotes en MS-DOS/Windows. O sea, los (ahora ya no tan) famosos archivos .bat. Pero a diferencia de éstos y debido a la propia naturaleza del sistema operativo Linux, un script en bash puede llegar a ser increíblemente más potente que un simple archivo .bat.

Los pasos que seguiremos son los siguientes:

Crear el archivo

Este paso lo podemos hacer directamente en nuestro editor de texto preferido, guardando el archivo después con el nombre que deseemos. Yo voy a hacerlo usando vim. Si quieres instalarlo en Ubuntu:

Nuestro primer script mostrará por pantalla la fecha y hora actuales.

Nos vamos al directorio dónde queremos crear el script. En mi caso:

Luego invocamos el comando vim seguido del nombre del script. En mi caso le he llamado ahora.sh:

Escribir las instrucciones

La primera línea de un script en bash siempre debe ser:

Tras ella, escribiremos el resto de instrucciones. Así pues, nuestro script quedaría:

Recuerda: si estás usando vim tienes que pulsar la teca INS para entrar en modo insertar caracteres, y la tecla ESC para pasar al modo introducción de comandos. Para guardar y salir, en modo comandos, escribe :x

Dar permisos de ejecución al archivo

Una vez tenemos nuestro archivo creado, para poder ejecutarlo debemos asignar el correspondiente permiso de ejecución. Simplemente teclea:

Ejecutar el archivo

Nada más fácil:

Si todo ha ido deberías ver la fecha y hora actuales de tu sistema por pantalla. En próximas entregas añadiremos un poco de miga a esto del scripting 😉

Linux – Comandos básicos de administración del sistema (II)

Seguimos con el post iniciado el jueves pasado sobre administración básica de sistemas Linux. En esta ocasión trataremos el tema de la gestión de usuarios y permisos en Linux.

Gestión de usuarios y grupos de usuario

Añadir nuevo grupo de usuarios: addgroup

Añadir nuevo usuario: adduser

Con adduser añadimos usuarios. Podemos especificar un grupo si queremos crear y añadir el usuario directamente a un grupo existente:

Eliminar usuarios: deluser

Si además del usuario a eliminar añadimos el modificador -remove-home , nos cargaremos también la carpeta de dicho usuario:

Eliminar grupo de usuarios: delgroup

Cambiar contraseñas de usuarios: passwd

Si no especificamos el usuario, cambiará la contraseña del usuario actual:

Cambiar de usuario activo: su

Si no especificamos nombre de usuario, su cambiará al usuario root. Lógicamente, se nos pedirá la contraseña del usuario al que queremos cambiar:

Comandos útiles para obtener información sobre los usuarios del sistema

  1. Con users vemos los usuarios conectados en este momento.
  2. groups nos muestra los grupos a los que pertenece el usuario actual.
  3. Dentro del directorio /home hay una carpeta por cada usuario creado. OJO: Si se hubiera eliminado algún usuario SIN haber usado el modificador -remove-home , la carpeta seguiría existiendo.
  4. El archivo /etc/group contiene una lista de usuarios por cada grupo.
  5. El archivo /etc/passwd contiene los usuarios del sistema y sus contraseñas… encriptados 😉

Gestión de permisos

  1. Muestra los permisos actuales de ficheros y directorios.
  2. Cambiamos los permisos del fichero fich1 en modo octal.
  3. Cambiamos los permisos del fichero fich1 en modo carácter.
  4. Cambiamos el usuario y el grupo propietarios del fichero fich1.
  5. Cambiamos el grupo al que pertenece el fichero fich1.

Permisos en modo octal

Se basa en asignar 0 (denegado) o 1 (concedido) a cada uno de los siguientes permisos, en este orden: R (lectura), W (escritura) y X (ejecución). Estos 3 dígitos se deberán repetir para el propietario del fichero, para el grupo y para el resto de usuarios. Así pues, obtenemos las siguientes combinaciones:
Permisos en modo Octal

Ejemplos:

Los dígitos corresponden a: PROPIETARIO del fichero, GRUPO y RESTO de usuarios. Por tanto:

    • PROPIETARIO: 6 => 110 => (RWX) R:1 W:1 X:0 => El propietario puede leer (R) y escribir (W), pero no ejecutar (X) el fichero.
    • GRUPO: 3 => 011 => (RWX) => R:0 W:1 X:1 => El grupo no puede leer (R), pero puede escribir (W) y ejecutar (X) el fichero.
    • RESTO DE USUARIOS: 5 => 101 => (RWX) R:1 W:0 X:1 => El resto de usuarios pueden leer (R), no pueden escribir (W) y pueden ejecutar (X) el fichero.
    • PROPIETARIO: 7 => 111 => (RWX) R:1 W:1 X:1 => El propietario puede leer (R), escribir (W), y ejecutar (X) el fichero. Es decir, acceso total.
    • GRUPO: 6 => 110 => (RWX) => R:1 W:1 X:0 => El grupo puede leer (R) y escribir (W), pero no ejecutar (X) el fichero.
    • RESTO DE USUARIOS: 6 => 110 => (RWX) => R:1 W:1 X:0 => El resto de usuarios pueden leer (R) y escribir (W), pero no ejecutar (X) el fichero.
    • PROPIETARIO: 7 => 111 => (RWX) R:1 W:1 X:1 => El propietario puede leer (R), escribir (W), y ejecutar (X) el fichero. Es decir, acceso total.
    • GRUPO: 7 => 111 => (RWX) R:1 W:1 X:1 => El grupo puede leer (R), escribir (W), y ejecutar (X) el fichero. Es decir, también cuenta con acceso total.
    • RESTO DE USUARIOS: 0 => 000 => (RWX) => R:0 W:0 X:0 => El resto de usuarios no pueden leer (R), ni escribir (W) ni ejecutar (X) el fichero. Es decir acceso denegado completamente al fichero.

Permisos en modo carácter

En este modo el comando chmod recibe los siguientes modificadores, en este orden:

  1. Primero especificamos a quién queremos dar o eliminar el permiso:
    • u (user): usuario propietario del fichero.
    • g (group): grupo.
    • o (others): resto de usuarios.
    • a (all): para todos. Equivale a usar “ugo”.
  2. A continuación especificamos si queremos dar o retirar permisos:
    • + : Concedemos permiso.
    • – : Denegamos permiso.
    • = : Asignamos permiso sobreescribiendo al permiso existente en este momento.
  3. Por último indicamos qué tipo de permiso queremos dar o retirar:
    • r (read): Permiso de lectura.
    • w (write): Permiso de escritura.
    • x (ejecución): Permiso de ejecución.:

Por ejemplo, si queremos obtener los mismos permisos que en el apartado anterior pero en modo caracter, los comandos a emplear serían:

  1. El propietario puede leer y escribir, pero no ejecutar; el grupo no puede leer, pero puede escribir y ejecutar; el resto pueden leer y ejecutar, pero no escribir.
  2. El propietario puede leer, escribir y ejecutar; el grupo puede leer y escribir, pero no ejecutar; el resto pueden leer y escribir, pero no ejecutar.
  3. El propietario puede leer, escribir y ejecutar; el grupo puede leer, escribir y ejecutar; el resto no pueden ni leer, ni escribir ni ejecutar.

Linux – Comandos básicos de administración del sistema (I)

Inicio con este post una serie en la que trataré los comandos básicos de administración de un sistema Linux. En concreto, hoy voy a decirte cómo trabajar con directorios y ficheros. En la próxima entrega de la serie veremos cómo gestionar usuarios y permisos. Esta introducción nos servirá mucho para empezar a desarrollar scripts en bash, más adelante. Vamos a ello.

Comandos para trabajar con directorios

Crear directorios: mkdir

El comando mkdir nos permite crear directorios. Podemos crear varios directorios al mismo tiempo:

Cambiar a directorio: cd

Para cambiar a un directorio usamos el comando cd , especificando a continuación la ruta a la que queremos desplazarnos:

Para cambiar de forma rápida al directorio home del usuario actual podemos usar la tilde (AltGr + 4):

Eliminar directorios vacíos: rmdir

Para eliminar un directorio vacío se usa el comando rmdir . Al igual que antes, podemos eliminar varios a la vez, y además podemos usar comodines:

Comandos para trabajar con ficheros

Crear ficheros: touch

Existen varias formas de crear un fichero. Por ejemplo, puedes usar un editor de textos y guardarlo. Otra manera es usando el comando touch . touch nos permite cambiar la fecha en que ha sido modificado un fichero, pero si el fichero que le indicamos no existe, lo creará. Con touch también podemos crear múltiples ficheros a la vez:

Eliminar ficheros (y directorios NO vacíos): rm

rm elimina ficheros. Admite que le especifiquemos varios ficheros a la vez y el uso de comodines. Además, si usamos el modificador -r permite el borrado recursivo (incluyendo directorios, aunque no estén vacíos):

Copiar ficheros: cp

El comando para copiar ficheros es cp . Recibe como primer parámetro la ruta del fichero origen y como segundo la ruta destino. También admite el uso de comodines y puede copiar de forma recursiva con el modificador -r :

Mover y renombrar ficheros: mv

mv funciona de manera similar a cp, pero en lugar de copiar los archivos los mueve a un nuevo directorio. También lo podemos usar para renombrar archivos:

Comprimir y extraer ficheros: tar

El comando tar nos permite empaquetar (con compresión o sin ella) varios archivos en un único fichero, y extraer su contenido:

1: crea un paquete de archivos comprimiendo con ZIP
2: crea un paquete de archivos comprimiendo con BZIP2
3: extrae los contenidos de un paquete comprimido en ZIP

Ubuntu – Instalar JDK y Eclipse

En este post voy a detallar los pasos a seguir para instalar el JDK y la última versión (a agosto de 2014) de Eclipse en nuestro sistema Linux. A fecha de hoy las últimas versiones (y las que estoy utilizando) son:

  • Ubuntu: 14.04
  • OpenJDK: 1.7.0_55
  • Eclipse: Luna

Instalar el JDK

sudo apt-get install openjdk-7-jdk

Instalar Eclipse

  1. Descargar la última versión de Eclipse desde este enlace. Cuando el navegador pregunte, elegir Guardar Archivo. Yo he elegido guardarlo en el directorio ~/Downloads
  2. Una vez descargado, desde un terminal vamos a mover el archivo descargado al directorio /opt .

  3. A continuación debemos descomprimir los contenidos del archivo. Ten en cuenta que tu versión del archivo puede variar. Por favor, adapta el siguiente comando a la versión que tengas en este momento.

Crear un lanzador en el Escritorio

En este post expliqué cómo crear un acceso directo en Ubuntu de forma sencilla y cómoda haciendo uso de una interfaz gráfica. En esta ocasión, vamos a crearlo editando directamente el fichero correspondiente.

  1. Crear un nuevo archivo llamado ‘eclipse.desktop‘ en el directorio /usr/share/applications/

  2. Cuando se abra el editor de textos gedit, copiar las siguientes líneas y guardar el archivo:

  3. Para instalarlo en Unity, ejecutaremos los siguientes comandos:

  4. Y para que aparezca en el dash de Ubuntu, ejecutaremos:

Ubuntu – Instalar MySQL y crear una base de datos de prueba

En este sencillo post detallo los pasos para instalar MySQL en Ubuntu. Ejecuta las siguientes órdenes desde un terminal.

Instalar MySQL

En cierto punto, la instalación te pedirá que introduzcas una contraseña para el usuario root:

Tras introducir (y confirmar) la contraseña, el proceso de instalación continuará. Una vez finalizado, podemos comprobar que está efectivamente instalado mediante el siguiente comando:

Si todo ha ido bien te saldrá un mensaje similar a este:

Crear nuestra primera base de datos

Accederemos a MySQL con el usuario root y la contraseña que hemos indicado durante la instalación. Usaremos el siguiente comando:

En mi caso, que he usado también la palabra root como contraseña, el comando exacto sería:

Tras lo cuál nos aparecerá el shell de MySQL, desde donde ejecutaremos cualquier orden que deseemos llevar a cabo.

Por ejemplo, creemos nuestra primera base de datos. En el shell de MySQL teclea.

Para mostrar las bases de datos existentes (y así comprobar que hemos creado la nuestra), se emplea el comando:

Con lo que veremos que efectivamente se ha creado de forma correcta:

Para salir de mysql podemos teclear la orden exit o simplemente pulsar CTRL+C

Más adelante tengo intención de seguir creando posts con instrucciones de MySQL.

Uso básico de git

En este post voy a describir de manera muy superficial los comandos básicos de git.

Inicializar repositorio

Nos situamos dentro del directorio en el que se alojará nuestro repositorio y ejecutamos el comando:

Con ello se habrá creado un directorio .git que contendrá nuestro repositorio.

Ver el estado en que se encuentra nuestro repositorio

Se mostrará por pantalla aquellos archivos preparados para ser “commiteados”, los que no están siendo “vigilados” (tracked), etc…

Configuración global de usuario

Si omites el argumento – -global la configuración sólo se aplicará para este repositorio en concreto.

Añadir archivos a la “staging area”

Cuando se crean archivos nuevos se marcan como “UNTRACKED”, es decir, que git no los está “vigilando”.
Para que git controle los cambios en estos archivos es necesario añadirlos a la “staging area” con el siguiente comando:

Si queremos añadirlos todos podemos teclear directamente:

Hacer commit

Después de haber incluido los archivos en la “staging area” ya podemos hacer un commit. Con el commit indicamos a git que esos archivos ya están listos para incorporarlos al repositorio:

Debemos añadir un mensaje significativo para cada commit.

Subir cambios a un repositorio remoto

Añadir repositorio remoto

Imagina que ya tienes creado tu repositorio en github, por ejemplo. Si quieres subir los cambios que has realizado en tu máquina local al repositorio remoto lo primero que tienes que hacer es añadirlo con el siguiente comando:

Subir los cambios

Una vez indicado el repositorio remoto ya podemos subir los cambios. Esto es lo que se conoce como “hacer push”:

Aquí merece la pena detenerse a explicarlo con un poco más de detenimiento:

  • git push: es el comando, no tiene más misterio.
  • -u: para que recuerde los parámetros. Es decir, en sucesivos push, sólo tendremos que escribir “git push”, sin más.
    Nota: por lo visto, esto sólo se aplica cuando trabajamos con respositorios via SSH, que son algo más difíciles de configurar. Si trabajamos vía HTTPS (método recomendado por GitHub), cada vez que hagamos “push” nos pedirá usuario y contraseña.
  • origin: rama por defecto
  • master: rama en el repositorio remoto

Clonar un repositorio remoto en nuestra máquina

Para descargar un repositorio remoto en nuestra máquina deberemos conocer la dirección de dicho repositorio. Por ejemplo, si deseamos un clonar un repositorio existente en github, deberemos copiar la siguiente dirección:


La dirección que necesitamos es la que se encuentra dentro del rectángulo rojo. Además, la propia interfaz de github nos proporciona un botón para copiarla directamente al portapapeles, lo cuál resulta muy cómodo.

Una vez dispongamos de la dirección del respositorio a clonar, simplemente ejecutaremos el comando “git hub direccion_a_clonar”. Por ejemplo:

Ubuntu – Crear nuevo lanzador (acceso directo)

En Ubuntu podemos crear un nuevo lanzador personalizado (lo que en Windows conocemos como “Acceso directo”) a cualquier aplicación que tengamos instalado siguiendo los siguientes pasos:

Paso previo: instalar gnome-panel

En un terminal ejecutamos la siguiente orden:

Lanzar el comando gnome-desktop-item-edit para crear el lanzador

Una vez tengamos instalado gnome-panel, debemos ejecutar el siguiente comando desde un terminal:

Por favor, ten en cuenta que en este ejemplo estoy creando el lanzador en mi Escritorio. Tú puedes sustituir ~/Escritorio/ por el directorio en el que prefieras alojar el lanzador.

Tras ejecutar el comando anterior aparecerá en pantalla un sencillo cuadro de diálogo en el que podrás definir cada una de las opciones del lanzador:

  • Icono: Haz click sobre el icono para elegir otra imagen representativa.
  • Tipo: Lo normal es que aquí elijas “Aplicación”, pero puede ser una aplicación que se ejecuta en un terminal o simplemente una ubicación dentro de tu sistema de archivos.
  • Nombre: Cómo quieres identificar a la aplicación.
  • Comando: El comando que se ejecutará al hacer click sobre el lanzador. Puedes hacer uso del botón “Examinar” para localizarlo más fácilmente.
  • Comentario: Una breve descripción del comando que se ejecutará.

Aquí tienes una captura del lanzador que he creado para ejecutar IntelliJ IDEA en mi sistema: