sábado, 14 de octubre de 2017

Cambiar las IP de mi red tipo NAT en VirtualBox

En modo NAT, VirtualBox (VB) coloca un router entre el exterior (hacia donde hace NAT) y el invitado. Dicho router posee un servidor DHCP que sirve hacia el interior. Este router mapea el tráfico desde y hacia la Maquina Virtual (MV) de forma transparente. Cada MV en modo NAT tendrá su propio router, por lo que estarán en redes aisladas, lo que implica, que por defecto, las MV que tienen su tarjeta de red en modo NAT no pueden verse entre sí.

La dirección que el router sirve va a depender del número del adaptador de red que esté configurado en modo NAT. Las 8 tarjetas de red que VB permite a cada MV se enumeran del 0 al 7, y las direcciones de red de los routers son por defecto del tipo 10.0.x+2.0/24, donde x es el número del adaptador de red (10.0.2.0/24, 10.0.3.0/24, ..., 10.0.9.0/24). La dirección IP para la tarjeta de red es la 10.0.x+2.15 (y sucesivas para interfaces virtuales en GNU/Linux) y para el router la 10.0.x+2.2.

Puede que sea interesante cambiar la numeración anterior motivado por el problema que estemos resolviendo en un momento dado, y para hacerlo es necesario usar la línea de comando con la orden VBoxManage de la siguiente manera:

VBoxManage modifyvm "Debian Wheezy 32b" --natnet1 192.168.0.0/16

Con la orden anterior, el adaptador de red número 0 (--natnet1) de la MV denominada Debian Wheezy 32b, si lo configuramos en modo NAT, utilizará la red 192.168.0.0/16, por lo que la IP de la tarjeta de red será la 192.168.0.15 y la puerta de enlace la 192.168.0.2.

lunes, 9 de octubre de 2017

Programación de Script Linux V - Creando usuarios de forma masiva


En este ejemplo, crearemos un Script que nos creará una serie de usuarios a partir de un fichero de texto con la información de los mismos. Para realizarlos, tendremos que aprender a comprobar si un fichero existe o no, si el usuario que ejecuta es root o no y tiene o no los permisos necesarios o tendremos que recorrer un fichero de texto en el que está la información de los usuarios e ir extrayendo cada uno de los campos con los datos del usuario.

domingo, 8 de octubre de 2017

Programación de Script Linux IV - Los bucles for (I)


En este vídeo explicaremos como podemos ejecutar comandos de forma reiterada mediante el uso de bucles for.

sábado, 7 de octubre de 2017

Programación de Script Linux III - Las variables de cabecera y las variables internas


En este vídeo tutorial, veremos como usar dentro de nuestros scripts linux las variables y como paserle valores de variables a través de la línea de cabecera en la llamada.

viernes, 6 de octubre de 2017

Programación de Script Linux II - Interactuando con el usuario y usando variables I


En este vídeo, vamos a aprender a aprender a manejar variables dentro de nuestro Script y a interactuar con el usuario haciendo que introduzca valores que utilizará en su funcionamiento.

miércoles, 4 de octubre de 2017

Conocer cuantos números enteros hay en un fichero

En ocasiones cuando realizamos scripts en linux, necesitamos saber si un parámetro es un número o no para poder depurar errores.
Una de las formas mas sencillas es utilizando una comprobación de patrones mediante el comando grep.

En este ejemplo, vamos a crear un archivo llamado lineas.txt que contendrá lineas con textos y números.

Para conocer el número de líneas que contienen números, habrá que realizar una llamada mediante la línea de comandos de la siguiente forma:

grep -c '^[0-9]\+$' lineas.txt

Este comando nos devolverá el número de lineas que corresponden con números enteros positivos dentro del fichero lineas.txt. 
El parámetro -c le indicará a grep que nos devuelva el número de coincidencias en lugar de el texto coincidente.
A continuación nos encontramos con la expresión ^[0-9]\+$ entrecomillada. En esta expresión regular indicamos que busque una cadena que comience, indicado mediante ^, con un carácter en el intervalo [0-9] es decir, un dígito. Además le indicamos que este dígito aparece 1 o muchas veces, esto se indica mediante los caracteres \+, y por último con el carácter dolar $ le indicamos que también acabe con un dígito. 

Basándonos en este ejemplo, podemos crear un Script que reciba como parámetro un número y nos devuelva 1 o 0 en función de si es o no un número.